在jexcelapi中抓住一个非英语字符

时间:2012-08-13 13:02:02

标签: java excel apache-commons jexcelapi apache-commons-lang

我有一张带有非英文字符的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());

2 个答案:

答案 0 :(得分:0)

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

转而使用Apache POI而且效果很好,没有任何问题。

答案 1 :(得分:0)

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

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

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