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 回答