
正文
EXCEL最大行数问题:org.apache.xmlbeans.impl.store.Saver$TextSaver.resize(Saver.java:1700)
提示:扫一扫查出行【扫一扫了解最新限行尾号】
复制提示
今天在使用POI导出数据时,出现如下错误:
ES查询阅读推荐比:
resList:
start:
写入excel
Exception in thread "main" java.lang.OutOfMemoryError: Java heap space
at org.apache.xmlbeans.impl.store.Saver$TextSaver.resize(Saver.java:)
at org.apache.xmlbeans.impl.store.Saver$TextSaver.preEmit(Saver.java:)
at org.apache.xmlbeans.impl.store.Saver$TextSaver.emit(Saver.java:)
at org.apache.xmlbeans.impl.store.Saver$TextSaver.emitElement(Saver.java:)
at org.apache.xmlbeans.impl.store.Saver.processElement(Saver.java:)
at org.apache.xmlbeans.impl.store.Saver.process(Saver.java:)
at org.apache.xmlbeans.impl.store.Saver$TextSaver.saveToString(Saver.java:)
at org.apache.xmlbeans.impl.store.Cursor._xmlText(Cursor.java:)
at org.apache.xmlbeans.impl.store.Cursor.xmlText(Cursor.java:)
at org.apache.xmlbeans.impl.values.XmlObjectBase.xmlText(XmlObjectBase.java:)
at org.apache.poi.xssf.model.SharedStringsTable.getKey(SharedStringsTable.java:)
at org.apache.poi.xssf.model.SharedStringsTable.addEntry(SharedStringsTable.java:)
at org.apache.poi.xssf.usermodel.XSSFCell.setCellValue(XSSFCell.java:)
at org.apache.poi.xssf.usermodel.XSSFCell.setCellValue(XSSFCell.java:)
at com.mkit.export.util.Write2File.writeTopic2File(Write2File.java:)
at com.mkit.export.util.FindWeMedia.findWeMedia(FindWeMedia.java:)
at com.mkit.export.main.ExportWeMedia.main(ExportWeMedia.java:)
开始我以为是java分配内存不够用,使用命令指定JVM大小后仍然出现错误。
/usr/local/java/jdk1.8.0_121/bin/java -Xmx1024m -Xms512m -jar exWeMedia.jar
最后发现是EXCEL问题:
Excel2003的最大行是65536行,从Excel2007开始最大行是1048576。
解决办法:
Workbook wb = new SXSSFWorkbook(); (将原来的XSSFWorkbook 改为:SXSSFWorkbook)
Sheet sheet = wb.createSheet();
如果行数大于了最大值(1048576),那么可以考虑将数据切分成多个sheet来解决问题








