1

請求書の印刷に使用する Word のテンプレートがあります。

ここで、Word 文書をプログラムで作成し、テンプレートの内容を新しい文書にコピーして、きれいなテンプレートを保持し、Mail.Merge を使用して入力したプレースホルダーを置き換える方法を知りたいと思います。同様の Mail.Merge の質問を見つけましたが、ほとんどの場合、Spire コンポーネントが必要であり、料金を支払う必要があるため、興味がありません。私はただの学生です。他のものは、実際にはそれほど役に立ちません。

私が今直面している問題は次のとおりです。

  1. Word 文書を作成する
  2. テンプレートの内容を新しいドキュメントにコピーする
  3. MailMergeこれについて非常に混乱しているため、プレースホルダー名を追加する方法。
  4. 行うMailMerge

これが私が作成した現在のコードです。実際にInteropsを使用したのはこれが初めてです

Document document = new Document();
Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application();
document = wordApp.Documents.Open(fileName);
string[] fieldNames = {"date_issued", "month_covered", "tuition", "lunchfee", "discount", "in_no", "student_no", "student_name", "amount_due", "amount_paid", "balance", "penalty", "status"};
string[] data = new string[25];
Range range;
document.MailMerge.Fields.Add(range, fieldNames[0]);
document.MailMerge.Execute();

私はこの部分で本当に混乱しています

document.MailMerge.Fields.Add(range, fieldNames[0]);

rangeそして、私は何のためにあるのかわからない

4

1 に答える 1

1

テンプレートが実際のテンプレートであり、プレーンな Word ドキュメント (拡張子は .dotx または .dot であり、.docx/.doc ではない) ではない場合、何もコピーする必要はありません。テンプレートに基づいて新しいドキュメントを作成するだけです。

var doc = wordApp.Documents.Add("put template path here");

これには、テンプレートのコンテンツが含まれます。Word UI を使用してテンプレートに差し込み印刷を設定した場合 (差し込み用のデータの場所を含む)、それは新しい文書にも引き継がれます。

次に、C# からメールマージを実行できます。

doc.MailMerge.Execute();
于 2012-11-01T19:04:04.023 に答える