2010-08-30 126 views
3

海(2007字以上),我使用的Apache POI 3.6 我已经创建了一些代码..如何提取DOCX使用Apache POI

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然后将其转换为字符串?

回答

2

看起来您没有类路径中的所有依赖关系。

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

3

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

相关问题