我正在尝试使用apache poi创建.xlsx文件。它与arbaric和hindi等角色一起工作正常。但我在我的应用程序中也使用中文字符。当我使用我的代码创建.xlsx文件时,只显示中文字符。我正在使用此代码创建.xlsx文件。
Workbook wb = new HSSFWorkbook();
Sheet sheet = wb.createSheet("new sheet");
// Create a row and put some cells in it. Rows are 0 based.
Row row = sheet.createRow(1);
// Create a cell and put a value in it.
Cell cell = row.createCell(1);
//arbaric char set in cell and show successfully in .xlsx
cell.setCellValue("سلام");
Cell cell2 = row.createCell(2);
**//chinese char set in cell and not show in .xlsx**
cell2.setCellValue(" 邓敏 ");
Cell cell3 = row.createCell(3);
//hindi char set in cell here and show successfully in .xlsx
cell3.setCellValue("हिन्दी");
// Write the output to a file
FileOutputStream fileOut = new FileOutputStream("workbook5.xlsx");
wb.write(fileOut);
fileOut.close();
答案 0 :(得分:1)
Apache POI中存在一些已知的错误,这些错误与所谓的"代理对"相关。在Unicode中,请参阅https://bz.apache.org/bugzilla/show_bug.cgi?id=58247和https://bz.apache.org/bugzilla/show_bug.cgi?id=54084。
不幸的是,它很难修复,因为它发生在另一个库的深处。您可以尝试使用其他一些中文字符,如果其中一些中文字符有效,而且只有一些字符不起作用,则可能是同一个问题。
有一些关于修复第三方库的工作,请参阅https://bz.apache.org/bugzilla/show_bug.cgi?id=59268,您可以尝试用http://mvnrepository.com/artifact/com.github.pjfanning/xmlbeans中的那个替换XMLBeans-jar,看看是否能解决问题。如果您尝试那么请评论该错误,以便我们知道它有效!