使用带有中文字符的poi在java中编写.xlsx文件

时间:2017-07-28 11:07:19

标签: java excel apache-poi xlsx

我正在尝试使用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();

任何人都可以帮助我如何使用apache poi库在.xlsx文件中编写中文字符。下面我附上.xlsx文件输出。谢谢提前   enter image description here

1 个答案:

答案 0 :(得分:1)

Apache POI中存在一些已知的错误,这些错误与所谓的"代理对"相关。在Unicode中,请参阅https://bz.apache.org/bugzilla/show_bug.cgi?id=58247https://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,看看是否能解决问题。如果您尝试那么请评论该错误,以便我们知道它有效!