Apache POI SXSSFWorkbook createSheet() return NullPointerExc



我正在使用SXSSFWorkbook来流式传输大量数据(约990k条记录(,这些数据应该写入XLS文件中。以下代码的问题是当它部署在linux服务器上时。在我的本地机器(赢得10 x64(工作如预期。Apache POI的版本为4.1.2。

Workbook wb = new SXSSFWorkbook(SXSSFWorkbook.DEFAULT_WINDOW_SIZE);
Sheet sheet = wb.createSheet(); <-- NPE

这是的日志片段

at org.apache.poi.ss.util.SheetUtil.getDefaultCharWidth(SheetUtil.java:273)
at org.apache.poi.xssf.streaming.AutoSizeColumnTracker.<init>(AutoSizeColumnTracker.java:117)
at org.apache.poi.xssf.streaming.SXSSFSheet.<init>(SXSSFSheet.java:82)
at org.apache.poi.xssf.streaming.SXSSFWorkbook.createAndRegisterSXSSFSheet(SXSSFWorkbook.java:684)
at org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheet(SXSSFWorkbook.java:676)
at org.apache.poi.xssf.streaming.SXSSFWorkbook.createSheet(SXSSFWorkbook.java:88)
at com.odfl.altair.controller.MyController.selectAll(MyController.java:211)

正如您在MyController第211行看到的那样,我有createSheet((方法调用。我尝试过createSheet((和createSheet。

谢谢

我在基于alpaine的docker容器中遇到了同样的问题(没有必需的字体(。迁移到基于ubuntu的映像解决了这个问题。

对于基于alpaine的容器,您应该在Dockerfile中添加一些字体和库。它对我有用:

apk add curl bash wget fontconfig ttf-dejavu freetype libpng libjpeg-turbo freetype-dev libpng-dev libjpeg-turbo-dev freetype-dev libjpeg-turbo-dev libpng-dev

相关内容

最新更新