如何使用poi jar读取java api中的docx文件内容

我已经阅读了doc文件,现在我正在尝试阅读docx文件内容。 当我搜索示例代码时,我发现很多,没有任何效果。 检查代码以供参考……

import java.io.*; import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.apache.poi.xwpf.extractor.XWPFWordExtractor; import com.itextpdf.text.pdf.PdfWriter; import com.itextpdf.text.Document; import com.itextpdf.text.Paragraph; public class createPdfForDocx { public static void main(String[] args) { InputStream fs = null; Document document = new Document(); XWPFWordExtractor extractor = null ; try { fs = new FileInputStream("C:\\DATASTORE\\test.docx"); //XWPFDocument hdoc=new XWPFDocument(fs); XWPFDocument hdoc=new XWPFDocument(OPCPackage.open(fs)); //XWPFDocument hdoc=new XWPFDocument(fs); extractor = new XWPFWordExtractor(hdoc); OutputStream fileOutput = new FileOutputStream(new File("C:/DATASTORE/test.pdf")); PdfWriter.getInstance(document, fileOutput); document.open(); String fileData=extractor.getText(); System.out.println(fileData); document.add(new Paragraph(fileData)); System.out.println(" pdf document created"); } catch(IOException e) { System.out.println("IO Exception"); e.printStackTrace(); } catch(Exception ex) { ex.printStackTrace(); }finally { document.close(); } }//end of main() }//end of class 

对于上面的代码我得到以下exception:

 org.apache.poi.POIXMLException: java.lang.reflect.InvocationTargetException at org.apache.poi.xwpf.usermodel.XWPFFactory.createDocumentPart(XWPFFactory.java:60) at org.apache.poi.POIXMLDocumentPart.read(POIXMLDocumentPart.java:277) at org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:186) at org.apache.poi.xwpf.usermodel.XWPFDocument.(XWPFDocument.java:107) at pagecode.createPdfForDocx.main(createPdfForDocx.java:20) Caused by: java.lang.reflect.InvocationTargetException at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:67) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:521) at org.apache.poi.xwpf.usermodel.XWPFFactory.createDocumentPart(XWPFFactory.java:58) ... 4 more Caused by: java.lang.NoSuchMethodError: org/openxmlformats/schemas/wordprocessingml/x2006/main/CTStyles.getStyleList()Ljava/util/List; at org.apache.poi.xwpf.usermodel.XWPFStyles.onDocumentRead(XWPFStyles.java:78) at org.apache.poi.xwpf.usermodel.XWPFStyles.(XWPFStyles.java:59) ... 9 more 

请帮忙谢谢

这在Apache POI FAQ中有所介绍! 你想要的条目是我正在使用poi-ooxml-schemas jar,但我的代码失败了“java.lang.NoClassDefFoundError:org / openxmlformats / schemas / something

简短的回答是为完整的ooxml-schemas-1.1 jar切换poi-ooxml-schemas jar。 常见问题解答中给出了完整的答案

要读取excels或docx文件,如果你想解决错误,你需要添加所有的jar,那么你不会得到任何错误。