excel表格_excel函数公式大全_execl从入门到精通
POI导致内存溢出的一个不能忽视的问题2024-03-23 02:26:57
最近,由于项目需要,用到poi来操作Excel完成数据的导入。
一开始,以为是JVM内存不足,故意将内存调整到4G,足够大了,然后在运行时仍然曝出内存溢出。
然后又想到会不是循环行时创建的对象太多,又将对象的定义移到循环的外面,问题仍然没有解决。
接下来,又给FileInputStream的读取增加BufferedInputStream缓冲区读取,问题依然存在。
百无聊赖,仍然找不到问题的突破口。这时候,随便点了一下Excel表格的内容,发现了问题的所在,Excel中使用了公式,这里一定要注意:
使用POI读取Excel时,Excel里面一定不要使用公式,这样一方面会造成程序崩溃,一方面造成内存溢出,也就是会发生上面我们提到的后果(java.lang.OutOfMemoryError)java heap space.好了,很简单的一个问题,折磨了一下午,头疼。
最后,再次重申:当遇到采用POI读取Excel发生内存溢出时,一定要先检查Excel中各列是否有采用公式,如果有公式,一定要去掉改用手写。
如果你感觉本文对你有用,请分享给更多有需要的人。
标签: poi读取excel内存溢出