1

我正在尝试将一些外来字符写入 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);
4

1 回答 1

0

POI 在 Excel 中支持 Unicode 字符至少 5 年,也许更长!(具体记不清了)。几乎所有最近遇到 POI 和 Unicode 问题的人都使用的 POI 版本稍早于火与轮的发现……(我只是半开玩笑!)

首先,确保您使用的是最新版本的 Apache POI。截至 2013 年 9 月,我建议您尝试 POI 3.10 beta 2,这是最新版本。您始终可以在POI 下载页面上找到最新版本。其次,确保您实际使用的是您想要使用的 POI 版本。很多人忘记从他们的类路径中删除旧副本,最终仍然使用以前的版本,因为如果有两个具有相同库的 Java 将倾向于选择它遇到的第一个 jar。请参阅此 POI FAQ 条目以了解如何检查您实际使用的版本。

最后,像往常一样在文件中设置 unicode 字符串。如果您使用的是非标准字体,请确保支持您使用的代码点,但这与 Excel 本身没有什么不同!

POI 有许多单元测试,它们会自动验证它是否正确处理 unicode 文本,如果您想再次确保它正常工作,请参阅TestUnicodeWorkbookTextHSSFHeaderFooter之类的内容。

于 2013-09-09T15:05:30.633 回答