1

我有一张 Excel 表,里面有一些非英文字符,当我尝试通过

sheet.getColumn(column)[row].getContents()

它返回带有替换字符 \uFFFD 的字符串,而不是我将使用 StringEscapeUtils.escapeJava 转换为 unicode 的非英语字符。

//"L\u00F6schen" - correct
return StringEscapeUtils.escapeJava("Löschen"); 

//"L\uFFFDschen" - incorrect
return StringEscapeUtils.escapeJava(sheet.getColumn(column)[row].getContents());

//"L�schen" - incorrect
System.out.print(sheet.getColumn(column)[row].getContents());
4

2 回答 2

0

这真是令人沮丧,似乎 jexcelapi 缺少很多支持。

改用Apache POI,它运行良好,没有任何问题。

于 2012-08-24T15:55:34.410 回答
0

初始化 Workbook 时尝试通过 WorkbookSettings 设置编码。例如:

WorkbookSettings settings = new WorkbookSettings();
settings.setEncoding("Your java charset name");
Workbook workbook = Workbook.getWorkbook(source, settings);

然后 getContents() 方法应该更正单元格的内容

于 2021-04-30T15:40:41.083 回答