当前位置: 首页 > 知识库问答 >
问题:

Apache POI 3.16-使用XSSF读取75K行EXCEL(.xlsx)时发生OutOfMemory异常

张敏达
2023-03-14

根据要求,我的应用程序首先需要读取一个大约75k-100k行和90列的Excel文件。但在XSSFWorkbook加载pkg/file时,我在第2行遇到了以下异常

线程“main”Java.lang.OutOfMemoryError中出现异常:com.sun.org.apache.xerces.internal.dom.DeferredDocumentMPL.CreateChunk中的Java堆空间(未知源)

我正在使用下面的代码读取excel文件和当前分配给堆的1 GB内存,我甚至无法读取15K行的文件。

1 OPCPackage pkg=OPCPackage.open(“c:/users/admin/eclipse-workspace/helloworld/src/data.xlsx”);2 XSSFWorkbook wb=新XSSFWorkbook(pkg);

//读取需要更新的电子表格1 FileInputStream inputFile=new FileInputStream(“c:/users/admin/eclipse-workspace/helloworld/src/data.xlsx”);
2 XSSFWorkbook wb=new XSSFWorkbook(inputFile);

请让我知道是否有任何解决方案或是否有任何其他库或框架可供Java读取大型Excel文件。

共有1个答案

颜德馨
2023-03-14

您可以在这里参考:启动JVM时的Xms和Xmx参数是什么?并设置java内存参数以避免内存不足错误。

 类似资料:
  • 我们正在尝试将POI 3.8用于应用程序中的excel组件,该组件必须处理大型excel文件的创建。我很高兴使用SXSSF流媒体方法,它速度快,内存占用少。然而,我无法进行数据验证,必须使用XSSF。 在XSSF中,当我尝试打开xlsx文件(大约5 MB)时,内存会急剧增加,并且大部分会导致OutOfMemory。我的问题是, > 是否可以使用SXSSF进行数据验证(如从下拉列表中选择)。这将是我

  • 我尝试应用,但失败了。我一直在四处寻找解决办法,但还是解决不了问题。不确定是java版本不兼容还是缺少jar文件。我需要专业人士的指导。 system.out之后的当前版本:1.6.0 添加的外部Jar文件: -dom4j-1.6.1.Jar -log4j-1.2.17.Jar -junit-4.11.Jar -poi-3.11-20141211.Jar -poi-ooxml-3.11-20141

  • 我正在使用ApachePOI,我创建了一个XSSF工作簿,并尝试打开一个xlsx文件。它在当地的一个地方很有效。但是,当我用Excel打开真正服务器(AWS EC2、Tomcat8、JDK 1.8)上的Excel文件时,它显示文件已损坏(.xls工作)。这是我的代码: 本地Spring4, jdk1.8, tomcat 8.0, maven 真正的AWS EC2亚马逊linux2,jdk1。8、t

  • 我正在使用Eclipse IDE构建一个JSP web应用程序。web应用程序在tomcat server Ver7上没有问题地加载。我们得到了一个从xls和xlsx文件读取的新要求。所以我们使用Apache POI库(4.1.2)来实现它,如下所示:我取出了其他代码,因为它们与本文无关 但在执行时,我们会得到以下异常。我试过谷歌搜索,但没有找到相关的帮助。你能帮忙吗? 这就是我引用POI文件的方

  • 当我使用poi JAR在excel工作簿中写入一些数据时,代码中出现了以下异常: 我添加了以下罐子: > xmlbeans-2.4.0 poi-ooxml-schemas-3.11 poi-3.11 commons-logging-1.1 dom4j-1.6.1 log4j-1.2.17

  • 问题内容: 我正在尝试在Java中阅读excel。我有以下代码。 我导入了poi.3.6jar和poi.ooxml-3.6 jar。当我运行该程序时,出现以下错误消息。 我不明白为什么会出现此错误消息。请帮助我。 问题答案: 将文件添加到您的类路径。