问题描述
我一直在尝试基于现有的 excel 文件 (xlsx) 使用 FileInputStream 实例化 XSSFWorkbook。 由于某些业务需求,我应该使用 Excel 模板。
XSSFWorkbook templateWorkbook = new XSSFWorkbook(new FileInputStream("myTemplate.xlsx"));
我使用 XSSF 是因为我想在创建大型 Excel 文件(~50k 行)时提高性能。因此,我遵循了一些示例,例如 this,这些示例展示了如何使用 SXSSF 来提高性能。然后,在将 Excel 模板放入新的 XSSFWorkbook
后,我执行以下操作:
SXSSFWorkbook mySXSSFWorkbookFromTemplate = new SXSSFWorkbook(templateWorkbook,100);
但是,我总是遇到以下异常(在阅读 Excel 文件时,我的意思是我什至没有进入 SXSSFWorkbook 实例化):
java.lang.NoClassDefFoundError: org/apache/xmlbeans/impl/store/DomImpl$CdataNode
或者这个:
java.lang.NoClassDefFoundError: org/apache/xmlbeans/xml/stream/XMLStreamException
我能够在重新运行/重新调试单元测试时解决最后一个异常(这很奇怪,因为代码和 POM 依赖项保持完全相同)。
所以现在,我遇到了 NoClassDefFoundError DomImpl$CdataNode
这就是我的 POM 文件的样子。
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>5.0.0</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>5.0.0</version>
</dependency>
<dependency>
<groupId>javax.xml.stream</groupId>
<artifactId>stax-api</artifactId>
<version>1.0-2</version>
</dependency>
<dependency>
<groupId>org.apache.xmlbeans</groupId>
<artifactId>xmlbeans</artifactId>
<version>4.0.0</version>
</dependency>
更新:
我可以看到带有 xmlbeans jar 文件的 CdataNode.java 类。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)