我在Word中有一个用于打印发票的模板。
现在,我想知道如何以编程方式创建Word文档并将模板内容复制到新文档中,以便我仍然拥有一个干净的模板,然后替换使用Mail.Merge键入的占位符。我发现了类似的Mail.Merge问题,但大多数都需要Spire组件,我不感兴趣,因为它需要付费。我只是一名学生。其他人,实际上并没有那么多帮助。
我现在面临的问题如下:
MailMerge
,因为我对此非常困惑。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
是什么
答案 0 :(得分:1)
如果您的模板是实际模板而不是普通的Word文档(扩展名为.dotx或.dot,而不是.docx / .doc),则无需复制任何内容。只需根据模板创建一个新文档:
var doc = wordApp.Documents.Add("put template path here");
这将包含模板的内容。如果您已使用Word UI在模板中设置mailmerge(包括合并数据的位置),那么这也将被转移到新文档中。
然后你可以从C#执行mailmerge:
doc.MailMerge.Execute();