我正在尝试编写一段代码来读取 docx 文件,但由于某些奇怪的原因它失败了。
这一行失败了:
XWPFDocument document = new XWPFDocument(new FileInputStream(filepath));
堆栈跟踪:
Exception in thread "main" java.lang.NoSuchMethodError: org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTbl.getTrList()Ljava/util/List;
at org.apache.poi.xwpf.usermodel.XWPFTable.<init>(XWPFTable.java:106)
at org.apache.poi.xwpf.usermodel.XWPFDocument.onDocumentRead(XWPFDocument.java:151)
at org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:159)
at org.apache.poi.xwpf.usermodel.XWPFDocument.<init>(XWPFDocument.java:124)
at helper.JavaHelper.readTableDataFull(JavaHelper.java:84)
at helper.JavaHelper.main(JavaHelper.java:138)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:606)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
我有那些 jar :
- dom4j-1.6.1.jar
- xmlbeans-2.3.0.jar
- poi-3.9-20121203.jar
- poi-scratchpad-3.9-20121203.jar
- poi-ooxml-3.9-20121203.jar
- ooxml-schemas-1.0.jar
看起来它应该对我有用(我也尝试使用较新的 poi 库 - 同样的错误)。
有什么想法吗?
最佳答案
快速浏览 Grepcode说明缺少的方法在 ooxml-schemas
的 v1.1
中受支持。而且 v1.0
似乎不包含这样的方法(它只包含一个 getTrArray()
方法)。
所以您可能想使用 ooxml-schemas-1.1.jar
而不是 ooxml-schemas-1.0.jar
。
这是您至少应该使用的版本的 Maven 依赖项:
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>ooxml-schemas</artifactId>
<version>1.1</version>
</dependency>
关于java.lang.NoSuchMethodError : org. openxmlformats.schemas.wordprocessingml.x2006.main.CTTbl.getTrList()Ljava/util/List 同时使用 Apache POI 库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26854838/