域在Word的用处及其广泛,例如:自动编页码、按不同格式插入日期和时间、自动创建目录、实现邮件的自动合并、执行数学运算、调整文字位置等。关于如何创建域,请参阅:使用C#添加Word域
有时候,我们在Word模板文档中已经创建好域,用户填充相应数据后,对域进行更新,即可获得该域的结果。例如,以下模板文档中含有一个购物明细表,我们希望填充物品的“单价”、“数量”信息,然后自动生成“总金额”。这就是本文要介绍的如何自动更新域。
注:表中0.00处已经创建好求积、求和公式
C#
//创建Document对象
Document doc = new Document();
//加载模板文档
doc.LoadFromFile("购物明细清单.docx");
//替换模板文档中对应数据
doc.Replace("a.price", "5.5", true, true);
doc.Replace("b.price", "11.9", true, true);
doc.Replace("c.price", "5", true, true);
doc.Replace("a.quantity", "1", true, true);
doc.Replace("b.quantity", "2", true, true);
doc.Replace("c.quantity", "4", true, true);
//自动更新域
doc.IsUpdateFields = true;
//保存文档
doc.SaveToFile("output.docx", FileFormat.Docx2013);
VB.NET
'创建Document对象
Dim doc As Document = New Document
'加载模板文档
doc.LoadFromFile("购物明细清单.docx")
'替换模板文档中对应数据
doc.Replace("a.price", "5.5", true, true)
doc.Replace("b.price", "11.9", true, true)
doc.Replace("c.price", "5", true, true)
doc.Replace("a.quantity", "1", true, true)
doc.Replace("b.quantity", "2", true, true)
doc.Replace("c.quantity", "4", true, true)
'自动更新域
doc.IsUpdateFields = true
'保存文档
doc.SaveToFile("output.docx", FileFormat.Docx2013)
结果文档: