Text 如何使用ApachePOI提取docx(上面的Word 2007)

Text 如何使用ApachePOI提取docx(上面的Word 2007),text,ms-word,apache-poi,extract,docx,Text,Ms Word,Apache Poi,Extract,Docx,Hai,我正在使用ApachePOI3.6 我已经创建了一些代码 XWPFDocument doc = new XWPFDocument(new FileInputStream(file)); wordxExtractor = new XWPFWordExtractor(doc); text = wordxExtractor.getText(); System.out.println("adding docx " + file);

Hai,我正在使用ApachePOI3.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)
线程“main”java.lang.NoClassDefFoundError中的异常:org/dom4j/DocumentException 位于org.apache.poi.openxml4j.opc.OPCPackage.init(OPCPackage.java:149) 位于org.apache.poi.openxml4j.opc.OPCPackage(OPCPackage.java:136) 位于org.apache.poi.openxml4j.opc.Package.(Package.java:54) 在org.apache.poi.openxml4j.opc.ZipPackage.(ZipPackage.java:98) 位于org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:199) 位于org.apache.poi.openxml4j.opc.OPCPackage.open(OPCPackage.java:178) 在org.apache.poi.util.PackageHelper.open(PackageHelper.java:53) 位于org.apache.poi.xwpf.usermodel.XWPFDocument.(XWPFDocument.java:98) 位于org.apache.lucene.demo.Indexer.indexDocs(Indexer.java:153) 位于org.apache.lucene.demo.Indexer.main(Indexer.java:88) 它似乎使用了构造函数

XWPFWORD提取器(OPC包装容器)

但不是这个->

xwpfordextractor(XWPFDocument文档)

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

您可以尝试使用docx4j;请参见

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


如果您仔细看一下,就会发现在处理OOXML文件时,dom4j是一个必需的库。从你得到的例外情况来看,似乎你没有。。。如果您查看POI二进制下载,您应该在ooxml libs子目录中找到它。

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