3

Word テンプレートからの請求書の印刷を自動化したいと考えています。ロジックがダウンしていると思いますが、正しいコーディング方法がわかりません。これが私の現在のコードです

Selection wrdSelection;
MailMerge wrdMailMerge;
MailMergeFields wrdMergeFields;
Microsoft.Office.Interop.Word.Application wordApp = new Microsoft.Office.Interop.Word.Application();
Document wrdDoc = new Document();
wordApp.Visible = false;
wrdSelection = wordApp.Selection;

object oMissing = System.Reflection.Missing.Value;

// PUT MY EXISTING TEMPLATE FILE INTO WORD DOCUMENT
wrdDoc = wordApp.Documents.Add(Properties.Resources.invoiceTemp,oMissing,oMissing, oMissing);
// RETREIVE MAIL MERGE PROPERTIES FROM THE DOCUMENT IN HOPES OF UTILIZING IT

wrdMailMerge = wrdDoc.MailMerge;
wrdDoc.Select();
wrdMergeFields = wrdMailMerge.Fields;

それが役立つ場合は、テンプレートにある差し込みフィールドを次に示します。

date_issued, month_covered, invoiceNo, tuition, lunchFee, discount, studentNo, studentName, amountDue, amountPaid, balance_ penalty_status

では、アプリケーションを使用して取得したデータを、テンプレートからすべてのプロパティを取得するドキュメントに追加するにはどうすればよいでしょうか?

4

1 に答える 1

3

テンプレートとデータ ファイルを使用して実行する場合の注意事項を次に示します。

Word.Application _wordApp = new Word.Application();
Word.Document oDoc = _wordApp.Documents.Add(@"z:\docs\mergetemplate.dotx");
_wordApp.Visible = true;
oDoc.MailMerge.MainDocumentType = Word.WdMailMergeMainDocType.wdFormLetters;
oDoc.MailMerge.OpenDataSource(@"Z:\Docs\new.csv", false, false, true);
oDoc.MailMerge.Destination = Word.WdMailMergeDestination.wdSendToNewDocument;
oDoc.MailMerge.Execute(false);

新しく作成されたマージ ファイルは現在アクティブなドキュメントなので、保存できます。

Word.Document oLetters = _wordApp.ActiveDocument;
oLetters.SaveAs2(@"z:\docs\letters.docx", 
     Word.WdSaveFormat.wdFormatDocumentDefault);
于 2012-11-02T13:15:00.947 に答える