You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用OpenXML查找并替换文档页脚字符串?我的解决方案

使用OpenXML实现Word文档页脚文本的查找替换

之前我找了好久都没找到用OpenXML实现Word页脚文本查找替换的靠谱方案,自己折腾出来后,想着分享出来帮下踩同样坑的人。

一开始我试了Microsoft.Office.Interop.Word,结果各种报错,而且看不少同行都建议别用Office Interop——不仅依赖本地Office环境,部署起来麻烦得很,果断转用OpenXML。

实现代码

要完成页脚的文本替换,核心是遍历文档里所有的页脚部分,再逐个处理其中的文本节点:

using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Wordprocessing;
using System.Linq;

public static void ReplaceFooterText(string docPath, string oldText, string newText)
{
    using (WordprocessingDocument doc = WordprocessingDocument.Open(docPath, true))
    {
        // 遍历文档中所有的页脚部件
        foreach (var footerPart in doc.MainDocumentPart.FooterParts)
        {
            var textElements = footerPart.Footer.Descendants<Text>()
                                          .Where(t => t.Text.Contains(oldText));

            foreach (var textNode in textElements)
            {
                textNode.Text = textNode.Text.Replace(oldText, newText);
            }

            footerPart.Footer.Save();
        }

        doc.MainDocumentPart.Document.Save();
    }
}

关键注意点

  • 文档如果有分节设置,或是启用了首页不同、奇偶页不同的页脚,代码会自动遍历所有页脚部件,无需额外处理。
  • 如果要替换的文本被格式拆分到多个Text节点(比如部分文字加粗),需要额外处理节点合并逻辑,确保完整匹配目标文本。
  • 记得先安装NuGet包:DocumentFormat.OpenXml,建议用最新稳定版。

内容的提问来源于stack exchange,提问作者Nikolai 'Møller'

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.18 22:02:35