首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Apache POI解析错误

Apache POI解析错误
EN

Stack Overflow用户
提问于 2015-10-29 21:42:39
回答 1查看 20.1K关注 0票数 10

我知道这个问题经常被问到,但是找不到合适的解决方案。使用时

代码语言:javascript
复制
XWPFDocument xdoc = new XWPFDocument(srcFile);

代码语言:javascript
复制
XSSFWorkbook workbook = new XSSFWorkbook(srcFile);

我总是以下面的错误结束:

代码语言:javascript
复制
Exception in thread "main" java.lang.IllegalAccessError: tried to access method org.apache.poi.util.POILogger.log(ILjava/lang/Object;)V from class org.apache.poi.openxml4j.opc.PackageRelationshipCollection
    at org.apache.poi.openxml4j.opc.PackageRelationshipCollection.parseRelationshipsPart(PackageRelationshipCollection.java:313)
    at org.apache.poi.openxml4j.opc.PackageRelationshipCollection.<init>(PackageRelationshipCollection.java:163)
    at org.apache.poi.openxml4j.opc.PackageRelationshipCollection.<init>(PackageRelationshipCollection.java:131)
    at org.apache.poi.openxml4j.opc.PackagePart.loadRelationships(PackagePart.java:561)
    at org.apache.poi.openxml4j.opc.PackagePart.<init>(PackagePart.java:109)
    at org.apache.poi.openxml4j.opc.PackagePart.<init>(PackagePart.java:80)
    at org.apache.poi.openxml4j.opc.PackagePart.<init>(PackagePart.java:125)
    at org.apache.poi.openxml4j.opc.ZipPackagePart.<init>(ZipPackagePart.java:78)
    at org.apache.poi.openxml4j.opc.ZipPackage.getPartsImpl(ZipPackage.java:243)
    at org.apache.poi.openxml4j.opc.OPCPackage.getParts(OPCPackage.java:684)
    at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:275)
    at org.apache.poi.util.PackageHelper.open(PackageHelper.java:37)
    at org.apache.poi.xssf.usermodel.XSSFWorkbook.<init>(XSSFWorkbook.java:266)

人们建议打开PackageRelationshipCollection并重试。但这并没有多大帮助。

还有,我已经把罐子装好了:

代码语言:javascript
复制
<dependency>
   <groupId>org.apache.poi</groupId>
   <artifactId>poi</artifactId>
   <version>3.13</version>
   <type>jar</type>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-scratchpad</artifactId>
    <version>3.13</version>
    <type>jar</type>
</dependency>
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.12</version>
    <type>jar</type>
</dependency>
 <dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml-schemas</artifactId>
    <version>3.11</version>
    <type>jar</type>
</dependency>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-10-29 22:33:27

Apache POI FAQ

是否可以混合不同版本的POI jars?

不是的。这不受支持。

使用中的所有POI jars必须来自同一版本。不支持poi-3.11.jar和poi-ooxml-3.9.jar这样的组合,并且将无法以不可预测的方式工作。

您的pom依赖于从3.11、3.12和3.13开始的Apache POI jar,即the FAQ explained isn't supported

您需要将所有这些都更改为3.13,然后它就可以工作了

我建议这样做:

代码语言:javascript
复制
<properties>
  <poi.version>3.13</poi.version>
</properties>
<dependencies>
  <dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi</artifactId>
    <version>${poi.version}</version>
  </dependency>
  <dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-scratchpad</artifactId>
    <version>${poi.version}</version>
  </dependency>
  <dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>${poi.version}</version>
  </dependency>
  <!-- etc as needed -->

这样,您就可以确保所有POI jars都来自同一版本!

票数 33
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33415904

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档