当前位置:首页 > 内存 > 正文

poi读取excel内存溢出

  • 内存
  • 2024-08-08 20:41:45
  • 177

一、在java中用POI写入Excel的时候报内存溢出,数据量有20万左右,请问有什么好点的解决方案,请给源码,谢谢啊每个Excel工作表可包含的最大行数为65536行。连3张20W都装不下,可以把判断写在程序里,然后新建一个Excel。另外,不要向Excel中写入太多数据,否则Excel将无法打开。建议写几个Excel表格。
二、求教怎么用读取流操作Excel文件,不借助jxl,poi等外部库,数据量比较大,在20万以上,保证内存不溢出。。POI是Apache公司的一个子项目,主要提供一组用于Windows文档处理的JavaAPI。
JavaExcel,俗称jxl,是一个开源项目,Java开发者可以通过它读取Excel文件的内容并创建新的Excel文件,更新现有的Excel文件。使用这个API,非Windows操作系统也可以通过纯Java应用程序处理Excel数据表。由于是用Java编写的,我们可以在Web应用程序中通过JSP和Servlet调用API来访问Excel数据表。
至于两者的区别,我们主要说一下JVM虚拟机的内存消耗。
数据量为3000个数据块,每个块有60列内存大小虚拟机为64M。
POI使用情况:运行2800条左右时,报内存溢出。
JXL使用情况:3000条全部显示完毕,尚有21M内存空间。
可以想象,在内存消耗方面,差距还是相当大的。
可能是因为JXL在资源回收方面做得很好。
没有对效率进行研究。两者来说,我觉得这也是建立在数据量大的基础上的,如果数据量小的话,差别基本不大,检测数据也不难,POI比JXL消耗JVM内存多很多,但是相比提供的功能,JXL相对来说比较弱,一些大数据量,可以考虑使用JXL,或者CSV也是不错的选择,但是CSV并不是真正的excel。