web-dev-qa-db-ja.com

Apache POIで単純なdocxファイルを作成するにはどうすればよいですか?

私は、Apache POIとその基礎となるopenxml4jを使用してdocxファイルを作成する簡単なサンプルコードまたは完全なチュートリアルを検索しています。

次のコードを試してみました(コンテンツアシストの助けを借りてa) 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);

スローされる例外は次のとおりです。

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)

誰かが私の(本当に簡単な)要件について私を手伝ってくれる?

34
guerda

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();
41
Valentin Rocher
import Java.io.File;   
  import Java.io.FileOutputStream;   
  import org.Apache.poi.xwpf.usermodel.XWPFDocument;   
  import org.Apache.poi.xwpf.usermodel.XWPFParagraph;   
  import org.Apache.poi.xwpf.usermodel.XWPFRun;   
  public class DocFile {   
    public void newWordDoc(String filename, String fileContent)   
         throws Exception {   
       XWPFDocument document = new XWPFDocument();   
       XWPFParagraph tmpParagraph = document.createParagraph();   
       XWPFRun tmpRun = tmpParagraph.createRun();   
       tmpRun.setText(fileContent);   
       tmpRun.setFontSize(18);   
       FileOutputStream fos = new FileOutputStream(new File("C:\\Users\\amitabh\\Pictures\\pics\\"+filename + ".doc"));   
       document.write(fos);   
       fos.close();   
    }   
    public static void main(String[] args) throws Exception {   
         DocFile app = new DocFile();   
         app.newWordDoc("testfile", "Hi hw r u?");   

    }   
  }   
1
Amitabh Ranjan