我知道这个问题经常被问到,但是找不到合适的解决方案。使用时
XWPFDocument xdoc = new XWPFDocument(srcFile);
要么
XSSFWorkbook workbook = new XSSFWorkbook(srcFile);
我总是会遇到以下错误:
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
并重试。但这并没有太大帮助。
我也有装的罐子:
<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>
从Apache POI常见问题解答:
我可以混合不同版本的POI罐子吗?
否。不支持此功能。
所有使用中的POI罐子必须来自同一版本。不支持诸如poi-3.11.jar和poi-
ooxml-3.9.jar之类的组合,它们将无法以不可预测的方式工作。
您的pom依赖于3.11、3.12和3.13中的Apache POI
jar,不支持FAQ所述
您需要将所有这些更改为3.13,然后它将起作用
我建议类似的东西:
<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罐都来自同一版本!
我试图读取xlsx格式的excel文件。但是我得到的结果太大,无效的句柄异常。我把文件实例在一个FileInputStream对象,并试图在XSSFWorkbook中设置该对象。但是我得到了这个例外。 我工作的环境中没有安装Microsoft office,并且有开放式office。我没有在open office中编辑我的xlsx文件。但我在open office中打开了文件,然后尝试运行poi代
问题内容: 尝试对mongoexport使用查询会导致错误。但是mongo-client会评估相同的查询,而不会出错。 在mongo-client中: 使用mongoexport: 产生的错误: 但是预先在mongoexport中进行乘法: 作品! 为什么mongo在这两种情况下对查询的评估不同? 问题答案: 该命令行实用程序支持传递查询 JSON 格式,但您要评估 的JavaScript 在您的
问题内容: 当我尝试从http://api-v3.deezer.com/1.0/search/album/?q=beethoven&index=2&nb_items=2&output=json使用以下方法获取JSON 时: 我得到: 但是使用http://search.twitter.com/search.json?q=beethoven&callback=?&count=5的JSON 可以正常工
我在日志中收到以下错误消息: 第32行example.php是: 我重新启动了php5-fpm(我使用的是PHP 5.3)、nginx和Ubuntu服务器本身,但运气不好。知道是怎么回事吗?谢谢!
和 是我用来获取JSON并对其进行解析的类。但是当我运行第一个时,它会报告以下堆栈跟踪: 它告诉我添加JsonReader。将lenient(true)设置为我的代码,但我的代码不使用JsonReader。那么如何将setLenient(true)添加到代码中? 编辑:添加API响应(格式化):
我有以下命令。我想循环使用此键和值,即对于冰/冷的项目,打印“值” 我试过这个: 却给我错误