[alibaba/easyexcel]读取excel依旧会产生OOM

2023-12-11 110 views
3

读取一个50几M的excel文件(这个文件也是用easyexcel生成的),在执行read方法时,还是会产生OOM

回答

3

解析出来数据放哪里?还是内存吗?

1

应该是你使用的方式的问题

0

还没到处理解析数据的时候,在reader.read()执行时报了OOM,没走到回调里

3

我是按文档里的方法调用的,读excel的时候还有什么需要注意的吗

7

你用的xlsx还是xls?

8

xlsx

2

报错贴一下

7

Exception in thread "main" java.lang.OutOfMemoryError: Java heap space at java.util.Arrays.copyOfRange(Arrays.java:2694) at java.lang.String.<init>(String.java:203) at com.alibaba.excel.read.SaxAnalyserV07$2.characters(SaxAnalyserV07.java:215) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.characters(AbstractSAXParser.java:546) at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:463) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:848) at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:777) at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:141) at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1213) at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:648) at com.alibaba.excel.read.v07.XmlParserFactory.parse(XmlParserFactory.java:28) at com.alibaba.excel.read.SaxAnalyserV07.initSharedStringsTable(SaxAnalyserV07.java:212) at com.alibaba.excel.read.SaxAnalyserV07.start(SaxAnalyserV07.java:147) at com.alibaba.excel.read.SaxAnalyserV07.<init>(SaxAnalyserV07.java:61) at com.alibaba.excel.read.ExcelAnalyserImpl.getSaxAnalyser(ExcelAnalyserImpl.java:28) at com.alibaba.excel.read.ExcelAnalyserImpl.analysis(ExcelAnalyserImpl.java:49) at com.alibaba.excel.ExcelReader.read(ExcelReader.java:55) at com.hexin.demo.test.Test3.parseExcel(Test3.java:50) at com.hexin.demo.test.Test3.main(Test3.java:91)

3

方便微信把文件发我吗?wiki下有我的微信

5

好的

3

请问下作者,这个问题解决了吗?我们也想用

1

@jipengfei-jpf 这个OOM问题我在1.1.1版本也遇到了, 轻问有解吗

8

由于1.0.*版本核心考虑的是怎么解决读excel内存溢出问题,自己重写了读excel的POI的底层,写仍旧使用POI。可以从根本解决OOM问题。但是由于自己对excel的格式认识不全面,有很多坑产生了很多BUG。最新版本以POI为底层。最新版:1.1.2-beat1,虽然不能完全解决OOM但可以解决大部分的OOM问题,完全解决OOM版本会等稳定后再开放,敬请理解。目前依赖POI版本1.1.2-beat1