Open XML SDKを使用した差し込み印刷
質問
3 つの列 (a、b、c) を持つ DataTable と、対応する MailMerge フィールドが設定された docx ファイルがあります。私がやりたいのは、データを含む文書に対して差し込み印刷を実行することです。
ハードディスクに書き込むことができると仮定します(マージなどを行うために CSV などを作成する必要がある場合)。 しないでください Word、Excelなど、Open XML SDKを持っている は インストールされていますが、同様に他のものをインストールすることもできます。
答えに関して言えば、入力データを必要なものに変換することは実際には問題ではなく、問題は どうやって Open XML SDK (または他の無料 API) で差し込み印刷を実行します。
補足として、出力は n ページ (n はデータの行数) を持つ 1 つのファイルである必要があります。n 個のドキュメントではありません (ただし、ドキュメントのマージが最後に行われるかどうかは気にしません)。
(付け加えておきますが、私は MailMerge の概念に縛られていないので、たとえば置換を行うだけでも機能します。ただし、明らかに、最後にファイルをマージする必要があります...)
解決
私はこれをかなりひどい方法で動作させています - 基本的に - 現時点では、アルゴリズムは次のようになります。
- docxファイルを解凍します
- document.xml を読み込む (文字列に)
- 文字列。フィールドを置き換えます
- 一時的な docx に再圧縮します
- 作成したすべての一時ドキュメントを結合します
ドキュメントをマージするための実際のコードは、Eric White のブログから引用されています。 http://blogs.msdn.com/ericwhite/archive/2009/02/05/move-insert-delete-paragraphs-in-word-processing-documents-using-the-open-xml-sdk.aspx