您的供应商被收购,所有提及它的合同、进度表、预算和幻灯片中,“ACME Corp”现在已变为“Globex Ltd”。在本地运行的 GroupDocs.Editor MCP 服务器配合 Claude Desktop、Cursor 或 Copilot 可以批量完成此操作:对文件夹中的每个文件调用 replace_text,保持格式,报告更改的出现次数,对从未提及旧名称的文件不生成任何文件。没有任何内容被上传,原始文件也不会被覆盖:

将 ACME Corp 重命名为 Globex Ltd,遍历 contracts 文件夹中的所有文档,保持格式,并给出每个文件的计数。

逐步操作指南位于文档中:在不破坏格式的情况下跨文件夹查找并替换文本。

为什么这项工作适合工具而不适合模型?

因为结果必须可检查。四十份文档肉眼比对太费力,而模型直接“更新所有合同”则没有可供核对的依据。查找替换工具会为每个文件提供一个计数。计数即审计轨迹:你知道哪些文件被修改、修改了多少以及哪些文件根本不需要修改。

它还必须以恰当的方式保持单调。粗体的公司名称仍保持粗体,费用表格保持网格,标题保持样式。模型永远不会重新键入文档:引擎打开文档,替换词语并写出副本。服务器 26.10.0 有一个小问题:该副本是从引擎的 HTML 编辑模型写出的,Word 页脚不会被保留下来。若合同在页脚中写有供应商名称,则需要使用分页的 HTML 循环;FAQ 列出了 Word 文档会保留的内容。

代理看到的内容

从 GroupDocs.Editor.Mcp 26.10.0 对一小批合成文档的捕获:一份服务协议、一份 NDA、一封欢迎信、一份三页预算以及一份三页审阅幻灯片。

-> replace_text {"file":{"filePath":"contracts/msa-northwind.docx"},
     "find":"ACME Corp","replace":"Globex Ltd","wholeWord":true}
<- Replaced 6 occurrence(s) of 'ACME Corp' in 'msa-northwind.docx'
   Saved to: …/msa-northwind_edited.docx

-> replace_text {"file":{"filePath":"contracts/nda-northwind.docx"}, ...}
<- Replaced 1 occurrence(s) of 'ACME Corp' in 'nda-northwind.docx'

-> replace_text {"file":{"filePath":"contracts/welcome-letter.docx"}, ...}
<- Text replacement found no matches for 'ACME Corp' in
   'welcome-letter.docx'. No file was written.

-> replace_text {"file":{"filePath":"budget.xlsx"}, ..., "worksheet":1}
<- Replaced 1 occurrence(s) of 'ACME Corp' in worksheet 1 of 3 of
   'budget.xlsx'

-> replace_text {"file":{"filePath":"review.pptx"}, ..., "slide":1}
<- Replaced 1 occurrence(s) of 'ACME Corp' in slide 1 of 3 of
   'review.pptx'

代理的报告会自行生成:协议中有六处,NDA 中有一处,欢迎信中没有,预算摘要中有一处,第一张幻灯片中有一处。

循环流程

contracts/ + budget.xlsx + review.pptx
   |
   +-- for each file:
   |      replace_text {"find":"ACME Corp","replace":"Globex Ltd",
   |                    "wholeWord":true}   (+ "worksheet"/"slide")
   |         -> "Replaced N occurrence(s) ..."  -> <name>_edited.<ext>
   |         -> "found no matches ... No file was written."
   |
   '-- report: file -> count; files with 0 listed separately

有两点习惯可以让循环更可靠。对名称使用 wholeWord: true,这样 “ACME Corp” 不会匹配到 “ACME Corporation Holdings”。并让代理列出零匹配的文件,因为在你预期会被修改的文件中出现零,正是需要二次检查的地方。

在替换之前检查批处理

编辑后的副本会与原件并列保存,直到你决定如何处理,这正是检查的时机。三项低成本检查几乎可以捕获所有问题。将每个文件的计数与预期对比:如果一份协议在每页都提到供应商,则不应只报告一次。不要依赖再次运行相同的替换:跨格式的短语在第二次仍会被漏掉,而 “found no matches” 看起来像是全部通过。让代理对每个编辑后的副本运行 extract_html;它的纯文本预览会合并格式运行,从而显示残留的 “ACME Corp”。变体拼写(如带句点的 “Acme Corp.”、 “ACME Corporation”)需要使用 matchCase: false 或正则表达式再跑一次。最后打开每种类型的一个编辑文件——合同、工作簿和幻灯片——确认格式以及页脚是否完整。只有在此之后才将 _edited 文件覆盖原件,或让你的文档系统进行版本管理。

在同一次调用中处理模式、大小写和格式

重命名是最常见的场景,但同一工具也能覆盖 “使措辞保持一致” 系列的其他需求。在同一次测试运行中:

-> replace_text {"file":{"filePath":"contracts/nda-northwind.docx"},
     "find":"v2\\.3\\b","replace":"v2.4","regex":true,
     "outputName":"nda-northwind-v2.4.docx"}
<- Replaced 1 occurrence(s) of 'v2\.3\b' in 'nda-northwind.docx'

-> replace_text {"file":{"filePath":"contracts/nda-northwind.docx"},
     "find":"acme corp","replace":"Globex Ltd","matchCase":false,
     "format":"pdf"}
<- Replaced 1 occurrence(s) of 'acme corp' in 'nda-northwind.docx'
   Saved to: …/nda-northwind_edited.pdf

regex: true 使用 .NET 正则表达式,这正是对文件夹中版本号或日期格式进行批量修改的方式。matchCase: false 能捕获大小写不一致的情况。format: "pdf" 在一次操作中完成编辑并转换,生成供另一端使用的副本。

给编码代理的旁注

相同的模式同样适用于代码仓库。DOCX 格式的发行说明和 XLSX 格式的规格说明对 sed 来说是不可见的;使用该服务器的 Claude Code 可以在两者中同步提升版本号,作为发布任务的一部分。将规则写入项目说明,让代理使用工具而不是手动解压 Office 文件:

To change wording in .docx/.xlsx/.pptx/.pdf files in this repo, use the
groupdocs-editor MCP server's replace_text (wholeWord for names, regex for
versions). Report the count per file. Never rewrite an Office file by hand.

真实限制

  • 匹配仅在单个格式运行内进行。在我们的协议中,第七个 “ACME Corp”(其中 “ACME” 为斜体)未被替换,计数为六正是体现了这一点。跨样式的短语需要 HTML 循环才能处理。
  • 每个结果都会以 <name>_edited.<ext> 的形式写入输出文件夹根目录,即使原文件位于子文件夹。不会覆盖任何文件:如果目标名称已被占用,会在文件名后加编号(msa-northwind_edited (1).docx),因此在可能冲突时请使用 outputName 指定名称。
  • 在服务器 26.10.0 上,Word 文档的编辑副本会丢失页脚,内容控件会被展平为纯文本。请检查那些在页脚中包含旧名称的文档。
  • 电子表格和演示文稿一次只能编辑一个工作表或幻灯片。在评估模式下仅能编辑前两页,服务器会提示:“Evaluation mode edits only the first 2 slides of a presentation; slide 3 is beyond them.”
  • 评估模式还会在每个输出文件顶部添加横幅行,且超过两页的 PDF 会被拒绝。

FAQ

它能在一次批处理里同时替换 Word、Excel 和 PowerPoint 中的文本吗?
是的。代理对每个文件调用相同的工具,并为工作簿和幻灯片分别添加 worksheet 或 slide 参数。

我如何知道哪些文件被修改了?
每次调用都会返回计数,未匹配的文件根本不会生成。让代理提供每个文件的统计表即可。

原始文件会被覆盖吗?
不会。每次编辑都会生成新文件,原始文件保持不变,直至你自行替换为止。

深入了解