POI操作大数据量Excel时,new SXSSFWorkbook(1000)实例化失败问题解决

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sanpangouba/article/details/79650834

项目上使用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的实现


猜你喜欢

转载自blog.csdn.net/sanpangouba/article/details/79650834