如何使用Apache POI创建简单的docx文件?

gue*_*rda 32 java docx apache-poi

我正在寻找一个简单的示例代码或完整的教程如何docx使用Apache POI及其底层创建文件openxml4j.

我尝试下面的代码(有很多从内容的帮助,协助,感谢Eclipse的!),但代码不能正常工作.

String tmpPathname = aFilename + ".docx";
File tmpFile = new File(tmpPathname);

ZipPackage tmpPackage = (ZipPackage) OPCPackage.create(tmpPathname);
PackagePartName tmpFirstPartName = PackagingURIHelper.createPartName("/FirstPart");
PackagePart tmpFirstPart = tmpPackage.createPart(tmpFirstPartName, "ISO-8859-1");

XWPFDocument tmpDocument = new XWPFDocument(tmpPackage); //Exception
XWPFParagraph tmpParagraph = tmpDocument.createParagraph();
XWPFRun tmpRun = tmpParagraph.createRun();
tmpRun.setText("LALALALAALALAAAA");
tmpRun.setFontSize(18);
tmpPackage.save(tmpFile);
Run Code Online (Sandbox Code Playgroud)

抛出的异常如下:

Exception in thread "main" java.lang.NullPointerException
    at org.apache.poi.POIXMLDocumentPart.read(POIXMLDocumentPart.java:235)
    at org.apache.poi.POIXMLDocument.load(POIXMLDocument.java:196)
    at org.apache.poi.xwpf.usermodel.XWPFDocument.<init>(XWPFDocument.java:94)
    at DocGenerator.makeDocxWithPoi(DocGenerator.java:64)
    at DocGenerator.main(DocGenerator.java:50)
Run Code Online (Sandbox Code Playgroud)

有人可以帮我解决(非常简单)的要求吗?

Val*_*her 40

以下是如何使用POI创建简单的docx文件:

XWPFDocument document = new XWPFDocument();
XWPFParagraph tmpParagraph = document.createParagraph();
XWPFRun tmpRun = tmpParagraph.createRun();
tmpRun.setText("LALALALAALALAAAA");
tmpRun.setFontSize(18);
document.write(new FileOutputStream(new File("yourpathhere")));
document.close();
Run Code Online (Sandbox Code Playgroud)

  • 哈哈,别担心,这里有很多愚蠢的问题(POI并不是那么容易使用) (8认同)
  • 它只是帮助了我,虽然我没有你的错误,但这是一个很好的谷歌搜索结果,一个非常简单的使用POI的例子. (4认同)