我发现很难找到文档页脚中 FindAndReplace 文本的任何解决方案,因此在自己弄清楚之后,我认为也许我的解决方案对其他人有用。
我尝试使用 Microsoft.Office.Interop.Word,在尝试使用它时遇到错误并看到其他开发人员建议远离 Microsoft.Office.Interop 并使用 OpenXML,我决定这样做。
这是我浏览文档并替换与指定字符串匹配的文本实例的方式。
using DocumentFormat.OpenXml.Wordprocessing;
using Text = DocumentFormat.OpenXml.Wordprocessing.Text;
private static void FindAndReplace(WordprocessingDocument wordDoc, string findText, string replaceWithText)
{
foreach (Text text in wordDoc.MainDocumentPart.Document.Descendants<Text>())
{
if (text.Text.Contains(findText))
{
text.Text = text.Text.Replace(findText, replaceWithText);
}
}
foreach (var footerPart in wordDoc.MainDocumentPart.FooterParts)
{
foreach (Text text in footerPart.Footer.Descendants<Text>())
{
if (text.Text.Contains(findText))
{
text.Text = text.Text.Replace(findText, replaceWithText);
}
}
}
}