【发布时间】:2017-10-06 18:58:07
【问题描述】:
我正在使用 Word Interop 为我的公司根据模板和 UI 输入生成一堆文档(本质上用用户提供的值替换文档的某些区域)。在每个 Range in Document.StoryRanges 上使用 Find.Execute() 方法似乎一切正常,但是,它似乎并没有在分节符后处理页眉和页脚(它在完全正常之前处理页眉和页脚)。
我将如何确保捕获整个文档,包括页眉、页脚和正文?
我的代码的相关部分如下,使用的 KVP 本质上是在实例化时传递给我的引擎类的查找-替换对。
private void ReplaceFieldsWithValues(string tempFile)
{
object missing = Missing.Value;
Application wordApp = new ApplicationClass();
wordApp.Documents.Open(tempFile);
Document doc = wordApp.ActiveDocument;
object replaceAll = WdReplace.wdReplaceAll;
foreach (Range range in doc.StoryRanges)
{
foreach (KeyValuePair<string, string> referenceValue in _referenceValuePair)
{
Find findObject = range.Find;
findObject.ClearFormatting();
findObject.Text = $"&{{{referenceValue.Key}}}&";
findObject.Replacement.ClearFormatting();
findObject.Replacement.Text = referenceValue.Value;
findObject.Execute(ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref replaceAll, ref missing, ref missing, ref missing, ref missing);
}
}
doc.Save();
doc.Close();
}
【问题讨论】:
标签: c# ms-word office-interop