我正在尝试将一些外来字符写入Excel 97/2003文件(即中文,日文,韩文等)并遇到问题。我已经尝试了很多,似乎没有任何工作。可能吗?我写这个单元的代码如下。
HSSFWorkbook workbook = new HSSFWorkbook();
HSSFSheet sheet = workbook.createSheet("Sample sheet");
...
HSSFRow row = sheet.createRow(0);
HSSFCell firstCell = row.createCell((short)0);
HSSFFont theFont = workbook.createFont();
theFont.setFontName("Arial Unicode MS");
HSSFCellStyle style = workbook.createCellStyle();
style.setFont(theFont);
firstCell.setCellStyle(style);
firstCell.setCellValue(firstColVal);
答案 0 :(得分:0)
POI支持Excel中的Unicode字符至少5年,可能更长! (我记不清楚了)。几乎所有有POI和Unicode问题的人最终都会使用POI的版本,这些版本稍微早于发现火和轮子......(我只是半开玩笑!)
首先,确保您使用的是最新版本的Apache POI。截至2013年9月,我建议您尝试POI 3.10 beta 2,这是最新版本。您始终可以在POI download page上找到最新版本。其次,确保您实际使用的是您想要的POI版本。很多人忘记从类路径中删除旧副本,并最终仍然使用以前的版本,因为如果有两个具有相同库的Java,Java将倾向于选择它遇到的第一个jar。请参阅this POI FAQ entry了解如何检查你实际使用的版本。
最后,只需在文件中设置unicode字符串即可。如果您使用的是非标准字体,请确保支持您使用的代码点,但这与Excel本身没有区别!
POI有许多单元测试,可自动验证它是否正确处理unicode文本,如果您想重新确认自己正常工作,请查看TestUnicodeWorkbook和TextHSSFHeaderFooter等内容。