域在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)
结果文档: