问题描述
- poi处理excel大数据量的导入会报内存溢出
-
XSSFWorkbook workbook = new XSSFWorkbook(new FileInputStream(fileName()));
就是单独执行这行代码都不行,报内存溢出,我把虚拟机都设置成最大了也溢出
差不多10万行吧
解决方案
解决方案二:
可以参考这:poi的eventmodel写的大数据量的excel的读取程序。
http://gaosheng08.iteye.com/blog/624758
或者换一种excel操作工具jxf。
解决方案三:
LZ可以试试分批处理,如下,当list中接收到的数据到1W条后,就先去去保存到数据库中,
同时将list清空,等待接收接下来的内容,直到将数据接收完毕
while(判断excel文件中是否还有信息){
list.add(XXX);
num ++;
if(num >= 10000){
执行导入操作,同时将list清空,将num置为0
}
}
if(null != list && list.size() > 0){
执行导入操作,同时将list清空(这是对剩余数据的操作)
}
时间: 2024-11-21 04:37:09