① 关于Poi 大数据量Excel 导出时 文件过大的问题 怎么解决
建议不要导出excel,当前excel中已经有支持cvs文件。
解释:cvs文件的显示方式和版xls的显示方式一样,并权且此显示方式的执行效率要高于xls文件的额,因为cvs文件存储的是数据直接直接用英文逗号分隔,xls是存储的cell。所以在大量数据的情况下,都是导出为cvs文件。
备注:如果数据过多的话,建议可以分多次查询导出,不要一次性导出,否则效率会很低。
-
② java excel poi 大数据量50W 内存溢出
Workbook workbook = new SXSSFWorkbook(1000);
poi有个机制 每次往内存中写1000条数据,这个1000你可以改的 尽量别大于10000条数据,写完1000条数据后再内重新写,这样就不会内存溢容出了。
③ java 用POI处理比较大的word和excel文档。
java的主要有两种方法
1、使用POI,这样的包,直接的是根据office文件的相应规则,进行解析封装
2、使用jcob这样的,通过调用office的dll文件,操作
第一种优点:
不需要在环境上安装office,纯java环境,开发文档较全,使用方便
缺点:
对于office的某些功能,特性兼容不是很全面,但一般的内容也可以满足
第二种优点:
对于office文件的兼容性良好,和使用word,excel的操作基本上是一样的
缺点:
由于是通过java调用office来完成,所以需要在环境上安装office,文档较少
④ poi读取excel2007(大数据),然后保存到数据库中
导致内存溢出是因为太多了内存不够用,你可以先读一部分然后做个标记,先把读到的这部分数据写入到数据库里。然后再从标记处开始读一部分再写入,再读再写直到完。不要一次性全部读完。
⑤ java 用POI处理比较大的word和excel文档。
用它抄的底层接口,EVentModel来操作会袭比较省内存,但代码写起来比较麻烦。9M左右就内存溢出的话,应该是你设置的Heap size太小了。增大Heap的大小也是必须的。
如果是xls的,用JExcel会比POI省内存。但它不支持2010。