本文主要是介绍POI操作大数据量Excel时,new SXSSFWorkbook(1000)实例化失败问题解决,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
项目上使用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的实现
这篇关于POI操作大数据量Excel时,new SXSSFWorkbook(1000)实例化失败问题解决的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!