Apache Poi - 将外文字符写入 Excel 97/2003(即中文、日文等)

问题描述 投票:0回答: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);
java unicode apache-poi
1个回答
0
投票

POI 在 Excel 中支持 Unicode 字符至少 5 年,甚至更久! (我记不太清了)。几乎所有最近在 POI 和 Unicode 方面遇到问题的人都使用了稍微早于火和轮子发现的 POI 版本......(我只是半开玩笑!)

首先,确保您使用的是最新版本的 Apache POI。截至 2013 年 9 月,我建议您尝试 POI 3.10 beta 2,这是最新版本。您始终可以在POI下载页面找到最新版本。

其次,确保您实际上使用的是您想要的 POI 版本。很多人忘记从类路径中删除旧副本,最终仍然使用以前的版本,因为如果有两个具有相同库的文件,Java 会倾向于选择它遇到的第一个 jar。请参阅此 POI 常见问题解答条目如何检查您实际使用的版本。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.