2

dotx既存のテンプレートから新しいドキュメントを作成したいと思います。

ここにリストされているいくつかの方法を試しました-POIでDOCXで事前定義されたフォーマットを使用するにはどうすればよいですか? しかし、どれも機能しません。

スタイルを設定しても何の影響もありません。

XWPFDocument template = new XWPFDocument(new FileInputStream(new File("template.dotx")));       

XWPFDocument doc = new XWPFDocument();      
XWPFStyles newStyles = doc.createStyles();
newStyles.setStyles(template.getStyle());

XWPFParagraph para = doc.createParagraph();
para.setStyle("Heading1");

XWPFRun run = para.createRun();
run.setText("Heading 1");

テンプレートからドキュメントを直接作成すると、新しく作成されたドキュメントが破損し、MS Word で開くことができません。具体的な詳細なしに、文書内に問題があると不平を言う。

XWPFDocument document = new XWPFDocument(new FileInputStream("template.docx");

何か案は?

4

1 に答える 1

5

これを実現する最も簡単な方法は、OPCPackage の「replaceContentType」メソッドを使用することです。

OPCPackage pkg = OPCPackage.open(src.getAbsolutePath());
pkg.replaceContentType("application/vnd.openxmlformats-officedocument.wordprocessingml.template.main+xml",
                "application/vnd.openxmlformats-officedocument.wordprocessingml.document.main+xml");
pkg.save(dest);

上記のコードでは、「src」と「dest」の両方が Java の「ファイル」オブジェクトです。

ファイルを保存したら、それを XWPFDocument として開き、任意のタイプの追加操作を実行できます。

于 2013-10-02T20:09:16.003 に答える