Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
使用Apache POI XSSF将Unicode字符从Java写入Excel文件;。xlsx";_Java_Unicode_Apache Poi - Fatal编程技术网

使用Apache POI XSSF将Unicode字符从Java写入Excel文件;。xlsx";

使用Apache POI XSSF将Unicode字符从Java写入Excel文件;。xlsx";,java,unicode,apache-poi,Java,Unicode,Apache Poi,我正在处理一个项目,该项目目前使用XSSF工作簿将数据写入Excel文件。我在将字符写入Excel文档并使其正确显示时遇到问题 我使用Pattern和Matcher查找文本中的其他标记,并用相应的Unicode字符替换它们 private static String replaceTags(String stringToChange, String replacementTag, String originalTag) { Pattern pattern = Pattern.compil

我正在处理一个项目,该项目目前使用XSSF工作簿将数据写入Excel文件。我在将字符写入Excel文档并使其正确显示时遇到问题

我使用Pattern和Matcher查找文本中的其他标记,并用相应的Unicode字符替换它们

private static String replaceTags(String stringToChange, String replacementTag, String originalTag) {
    Pattern pattern = Pattern.compile(originalTag);
    Matcher matcher = pattern.matcher(stringToChange);
    return matcher.replaceAll(replacementTag);
}
我在代码中调用该函数来查找和替换文本中的标记。它适用于我的大多数替换标签,但不适用于商标符号和引号之类的东西,因为我不能用它们的实际符号作为替换,我必须为它们使用Unicode

if (replacementString.contains("%0022")) {
    replacementString = replaceTags(replacementString, "\\U005C", "%0022");
}
c.setCellValue(replacementString);
现在我遇到的问题是,当我将字符串写入Excel文件时,Excel会忽略
U005C
前面的反斜杠,并像普通文本一样将代码写出。有没有办法让这些字符从我丢失的代码中显示出来,或者甚至可以这样做

更新:


我已经得到了所有我需要的符号,除了引号。使用
\\\\U005c
\\\\U0022
会使Excel电子表格显示\U005c或\U0022,而不是

只是一个猜测,但可能需要双重转义,因为Excel格式本身是内部引用的…即
“\\\\\U005c”
写入
“\\\\U005c”“
。但是我不理解整个上下文。这里是程序的更多上下文。我们在这个电子表格中有两列,一列包含文本块,其中包含表示将代替这些标记的特殊符号的标记。例如:手机不会说“Hello world”,而是说%2122 Hello world%2122。使用这些标记来表示引号。另一列将显示全文,包括引号、标点符号等特殊字符。你们建议的是程序输出,excel显示斜杠,但我需要excel显示字符,而不是unicode。您是否确保您的字体中包含所有必需的字符?