テンプレートに基づいて docx ファイルを作成する必要があります。テンプレートにはプレースホルダーが含まれている必要があり、Java からプレースホルダーを埋めることができるはずです。それを行うことは可能ですか?もしそうなら、私にそれを行うための良い効率的な方法を提案してください.
4 に答える
前に別の場所で説明したように、3 つの基本的なアプローチがあります。
BEST: コンテンツ コントロール データ バインディング
安い/陽気な: 変数の置換 (つまり、文書表面の魔法の文字列)、しかし脆い (分割実行の問題)
LEGACY: 他のフィールド コードの有無にかかわらず MERGEFIELD。
Docx4j は 3 つのアプローチすべてをサポートしていますが、通常はコンテンツ コントロールのデータ バインディングをお勧めします。
テンプレート作成者の技術的スキルを考慮する必要があります。
簡単な「変数置換」方法については、https://github.com/centic9/poi-mail-mergeを参照してください。1 つの replacement-string に複数のフォーマットが適用されている場合は機能しませんが、テンプレートが慎重に作成されている単純なケースではうまく機能します。
基本的に、CSV または Excel ファイルからテンプレートとデータを読み取り、それをデータの行ごとに 1 つずつ、複数の結果ファイルにマージします。
これは DOCX XML コンテンツで動作するため、Apache POI XWPF サポートを完全には使用していませんが、この方法では、Apache POI のすべてを完全にサポートする必要なく、テンプレートの書式設定やその他のものが期待どおりに使用されます (DOCX サポートは引き続きサポートがまだ完全に完了しているとは見なされないため、「スクラッチパッド」コンポーネントの一部)。