项目上使用POI导出数据库大数据量为Excel时,发现代码运行时 实例化工作簿 失败!
SXSSFWorkbook workbook = new SXSSFWorkbook(100);
trycatch问题代码后,在debug中也并未进入异常处理,而是直接进入了finally
最后发现问题所在:缺少SXSSF所依赖的操作xml的相关jar包!
Apache POI操作Excel对象
1:HSSF:操作Excel 2007之前版本(.xls)格式,xls格式的excel(最大行数65536行,最大列数256列)
2:XSSF:操作Excel 2007及之后版本(.xlsx)格式,.xlsx格式的excel(最大行数1048576行,最大列数16384列)
3:SXSSF:从POI3.8 beta3开始支持,基于XSSF,当数据量过大导致内存占用大于实例化时设定的初始值时,会将数据持久化到硬盘,从而避免出现内存溢出问题。
使用SXSSF实现大数据量的excel导出,导出的文件为.xlsx格式(2007)的excel,而.xlsx是用新的基于XML的压缩文件格式取代了原.xls(2003)专有的默认文件格式,使其占用空间更小,可以向下兼容xls。
所以,不光要导入poi的SXSSF相关的jar包,而且还要导入SXSSF所依赖的操作xml的jar包!
1:poi-3.10-FINAL-20140208.jar
2:poi-ooxml-3.10-FINAL-20140208.jar
3:poi-ooxml-schemas-3.10-FINAL-20140208.jar
4:dom4j-1.6.1.jar
5:xmlbeans-2.3.0.jar
关于使用POI导出大数据量Excel的实现,请看我之前的一篇博文(代码注释详细工整,并附有源码下载):
基于Apache POI导出大数据量Excel的实现
https://blog.csdn.net/sanpangouba/article/details/78856544