当前位置: 代码迷 >> 高性能WEB开发 >> java excel poi 大数据量50W,该如何解决
  详细解决方案

java excel poi 大数据量50W,该如何解决

热度:782   发布时间:2013-08-01 15:23:18.0
java excel poi 大数据量50W
最近在做Excel导出,但是数据太大,导致总是内存溢出。我想分成多次写,但是依然是内存溢出,求大神们帮忙。谢谢了。
Java 大数据 Excel poi 内存溢出

------解决方案--------------------
分批次导出,然后每次使用的bean重用保证溢出不了!
------解决方案--------------------
我也遇到类似问题了,读取的时候数据量太大,内存溢出,LZ解决了没有,怎么解决的?
------解决方案--------------------
我也碰到这个问题了。我8个字段的数据,8万条就内存溢出了。我jvm调整到700M都不行
------解决方案--------------------
用POI是有介个问题的,试试Jxl呢?好多年没用java了,当年不用POI就是因为它爱内存溢出。
------解决方案--------------------
但是如果你一次将数据全部导出,不做任何处理,相信jxl可能也承受不了的。
------解决方案--------------------
使用xml去解析excel文件 ,然后  使用poi的   缓存写出类  写出 excel文件  这样处理数据飞速  
------解决方案--------------------
晕,为什么要一次性导出呢?分批次地存入数据库中。比如每读取1000条数据批量插入到数据库中,这样就会避免内存溢出的问题。
------解决方案--------------------
没1000条插入一次数据库或者另存为其他文件,然后清理一次内存。肯定不会出现LZ说的问题了。
------解决方案--------------------
excel的一个sheet最大值好像是65531行,你试试如果超过一个数量就重新创建sheet,或者重新创建一个excel
------解决方案--------------------
可以换种方式,比如当用户点击下载后,后台跑一个线程,分批读取数据,生成完后提供一个下载的连接。
------解决方案--------------------
哎,何必自己找苦吃,这么大的,胖子也要撑死,何况是程序,分批才是正解
------解决方案--------------------
如果楼主你的程序报错OutOfMemoryError的话,可以用poi的SXSSFWorkbook对象.
------解决方案--------------------


用poi这个对象SXSSFWorkbook,我以前做过百万级的,给你个思路,分页查询,不要一次全部查出来,按页去写,然后在文件生成文件,用户下载文件就可以,这个是我以前处理的思路

代码有几个文件 没办法贴了,需要代码的话 发私信
------解决方案--------------------
为什么不分批导出,比如1万条生成一个文件,无论管理还是阅读都方便
------解决方案--------------------
我刚做了一个,8万数据是分三次导出。
------解决方案--------------------
  相关解决方案