POI导出用JDK8正籎DK7就内存溢出,怎么回事

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了POI导出用JDK8正籎DK7就内存溢出,怎么回事相关的知识,希望对你有一定的参考价值。

POI导出用JDK8正籎DK7就内存溢出,怎么回事
首先内存溢出的原因确定是Excel数据过大吗?如果是的话你可以考虑加大内存,或者可以把Excel按照sheet页逐个读取,每个sheet页最大65535条数据这样就避免了内存溢出的问题
假如你封装的读Excel的方法是readExcel(InputStream is)
.....
那么把方法改成readExcel(Sheet sheet)
直接读sheet内容

获取Excel的时候直接按照sheet页循环调用
for(...)
获取sheet页
readExcel(sheet);
执行持久化操作
System.gc();

如果不行的话只能加大内存了,因为可能当问件读到内存中时就已经内存溢出了
参考技术A 和楼主一样 Xms Xmx 设置大点就好了

poi导出大数据,报内存溢出怎么解决

参考技术A POI之前的版本不支持大数据量处理,如果数据过多则经常报OOM错误,有时候调整JVM大小效果也不是太好。3.8版本的POI新出来了SXSSFWorkbook,可以支持大数据量的操作,只是SXSSFWorkbook只支持.xlsx格式,不支持.xls格式。
3.8版本的POI对excel的导出操作,一般只使用HSSFWorkbook以及SXSSFWorkbook,HSSFWorkbook用来处理较少的数据量,SXSSFWorkbook用来处理大数据量以及超大数据量的导出。
参考以下博客
http://www.cnblogs.com/BigIdiot/archive/2012/11/26/2789067.html

以上是关于POI导出用JDK8正籎DK7就内存溢出,怎么回事的主要内容,如果未能解决你的问题,请参考以下文章

poi导出大数据,报内存溢出怎么解决

poi 做数据导出,数据大就会报内存溢出,求解(目前我的数据肯能会在15W笔)

poi导出excel问题

怎么使用java Poi解决导入excel表格大数据量时的内存溢出问

POI实现大数据EXCLE导入导出,解决内存溢出问题

POI导出数据内存溢出问题