2


0

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

ハードディスクに書き込むことができるとします(マージなどを行うためにcsvファイルなどを作成する必要がある場合)、Word、Excelなど、Open XML SDKはインストールされていませんが、他にもインストールできます。

答えに関しては、入力データを必要なものに変換することは実際には問題ではありません。問題はOpen XML SDK(または他の無料API)で差し込み印刷を実行する方法です。

ちなみに、出力はnページ(nはデータ内の行数)の1ファイルです。 n文書ではありません(文書のマージが最後に行われても構いません)。

(私は付け加えるべきだ、私はMailMergeの概念に縛られていない。例えば置き換えを行うことができればうまくいくだろう。明らかにそれには最後にファイルをマージする必要があるが…)

1 Answer


0


私はこれをかなり恐ろしい方法で動かしています - 基本的に - 現時点では、アルゴリズムはこれに従います。

  1. docxファイルを解凍する

  2. document.xmlを(文字列に)読み込む

  3. string.フィールドを置き換えます

  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