質問

3 つの列 (a、b、c) を持つ DataTable と、対応する MailMerge フィールドが設定された docx ファイルがあります。私がやりたいのは、データを含む文書に対して差し込み印刷を実行することです。

ハードディスクに書き込むことができると仮定します(マージなどを行うために CSV などを作成する必要がある場合)。 しないでください Word、Excelなど、Open XML SDKを持っている インストールされていますが、同様に他のものをインストールすることもできます。

答えに関して言えば、入力データを必要なものに変換することは実際には問題ではなく、問題は どうやって Open XML SDK (または他の無料 API) で差し込み印刷を実行します。

補足として、出力は n ページ (n はデータの行数) を持つ 1 つのファイルである必要があります。n 個のドキュメントではありません (ただし、ドキュメントのマージが最後に行われるかどうかは気にしません)。

(付け加えておきますが、私は MailMerge の概念に縛られていないので、たとえば置換を行うだけでも機能します。ただし、明らかに、最後にファイルをマージする必要があります...)

役に立ちましたか?

解決

私はこれをかなりひどい方法で動作させています - 基本的に - 現時点では、アルゴリズムは次のようになります。

  1. docxファイルを解凍します
  2. document.xml を読み込む (文字列に)
  3. 文字列。フィールドを置き換えます
  4. 一時的な docx に再圧縮します
  5. 作成したすべての一時ドキュメントを結合します

ドキュメントをマージするための実際のコードは、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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top