4

海,我正在使用 Apache POI 3.6 我已经创建了一些代码..

XWPFDocument doc = new XWPFDocument(new FileInputStream(file));
         wordxExtractor = new XWPFWordExtractor(doc);
         text = wordxExtractor.getText();

         System.out.println("adding docx " + file);
         d.add(new Field("content", text, Field.Store.NO, Field.Index.ANALYZED));

不幸的是,它产生了错误..

Exception in thread "main" java.lang.NoClassDefFoundError: org/dom4j/DocumentException
at org.apache.poi.openxml4j.opc.OPCPackage.init(OPCPackage.java:149)
at org.apache.poi.openxml4j.opc.OPCPackage.<init>(OPCPackage.java:136)
at org.apache.poi.openxml4j.opc.Package.<init>(Package.java:54)
at org.apache.poi.openxml4j.opc.ZipPackage.<init>(ZipPackage.java:98)
at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:199)
at org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:178)
at org.apache.poi.util.PackageHelper.open(PackageHelper.java:53)
at org.apache.poi.xwpf.usermodel.XWPFDocument.<init>(XWPFDocument.java:98)
at org.apache.lucene.demo.Indexer.indexDocs(Indexer.java:153)
at org.apache.lucene.demo.Indexer.main(Indexer.java:88)

似乎它使用了构造函数

XWPFWordExtractor(OPCPackage 容器)

但不是这个->

XWPFWordExtractor(XWPFDocument 文档)

有没有想过为什么??或者知道如何提取 .docx 然后将其转换为字符串?

4

3 回答 3

4

您需要将 dom4j 库添加到您的 claspath 或项目库中

于 2012-10-30T11:03:07.633 回答
2

看起来您的类路径上没有所有依赖项。

如果您查看http://poi.apache.org/overview.html,您会发现 dom4j 是处理 OOXML 文件时必需的库。从你得到的异常来看,好像你没有……如果你查看 POI 二进制下载,你应该在 ooxml-libs 子目录中找到它。

于 2011-03-31T22:17:32.950 回答
0

您可以尝试使用 docx4j;见http://dev.plutext.org/svn/docx4j/trunk/docx4j/src/main/java/org/docx4j/TextUtils.java

于 2010-08-31T03:02:44.617 回答