如何使用 C# 替换 Word 文档中的文本

This article was translated from English: Does it need improvement?
Translated
View the article in English

无论您是需要个性化模板、更新报告还是批量管理内容,在 Word 文档中自动替换文本都是一项常见需求。IronWord 是一个 C# 库,旨在让这项任务变得简单高效。

IronWord 的一个关键优势在于它可以直接操作 Word 文档,无需依赖 Microsoft Office Interop。这意味着您无需在服务器上安装 Word,从而为后端流程和 Web 应用程序提供速度更快、更可靠且更具可扩展性的解决方案。

在本操作指南中,我们将通过代码示例向您展示如何轻松地在任何 Word 文档中查找和替换文本。

快速入门:轻松替换 Word 文档中的文本

本快速指南演示如何使用 IronWord 快速替换 Word 文档中的文本。 只需几行 C# 代码,即可加载 DOCX 文件,替换指定文本,并保存更新后的文档。 这种高效的流程确保开发人员无需 Microsoft Office Interop 即可增强文档自动化,使其成为后端流程和 Web 应用程序的理想选择。

Nuget Icon立即开始使用 NuGet 创建 PDF 文件:

  1. 使用 NuGet 包管理器安装 IronWord

    PM > Install-Package IronWord

  2. 复制并运行这段代码。

    IronWord.Document doc = new IronWord.Document("sample.docx");
    doc.ReplaceText("oldText", "newText");
    doc.SaveAs("updated.docx");
  3. 部署到您的生产环境中进行测试

    立即开始在您的项目中使用 IronWord,免费试用!
    arrow pointer

替换文本示例

使用 IronWord 替换 Word 文档中的文本非常直观。 首先,我们加载一个现有文档。 然后,我们通过Paragraphs访问段落集合,并对特定段落使用 ReplaceText 方法。

ReplaceText方法接受两个字符串参数:要查找的文本和要替换为的文本。

ReplaceText方法区分大小写,并将所选段落中所有出现的字符串替换为匹配项。

本示例中使用的所有对象列表均采用从零开始的索引。

输入

在这个例子中,我们将使用这个包含两个段落的示例 Word 文档,这两个段落的文本都是"旧文本"。

示例 Docx

代码

以下是代码,我们将用"新文本"替换"旧文本"的第一段。

:path=/static-assets/word/content-code-examples/how-to/replace-words.cs
using IronWord;

// Open existing Word
WordDocument doc = new WordDocument("sample.docx");

// Replace the first paragraph's old text with new text
doc.Paragraphs[0].ReplaceText("old text", "new text");

// Save updated Word Document
doc.SaveAs("updated.docx");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

输出

输出 Docx 文件

输出文件中可以看到,只有第一段的文本被更改了,而第二段的文本保持不变。

替换多个文本

要替换整个文档中出现的每一个单词,请遍历Paragraphs集合,并对每个 Paragraphs 集合应用ReplaceText方法。

我们将继续使用之前的示例文件 sample.docx。 如果在段落中找不到要替换的文本,则不执行任何操作,循环继续到下一个段落。

如果找不到要替换的文本,则不会执行任何操作。

代码

以下是代码,我们将用"新文本"替换"旧文本"的第一段。

:path=/static-assets/word/content-code-examples/how-to/replace-words-multiple.cs
using IronWord;

// Open existing Word
WordDocument doc = new WordDocument("sample.docx");

// Loop through each paragraph to find and replace text
for (int i = 0; i < doc.Paragraphs.Count; i++)
{
    // Replace all occurrences of "old text" with "new text" in the current paragraph
    doc.Paragraphs[i].ReplaceText("old text", "new text");
}

// Save updated Word Document
doc.SaveAs("updated.docx");
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

输出

输出多个 Docx 文件

从这份更新后的 Word 文档中可以看到,这两个段落都被替换成了"新文本"一词。

查找文本

如果在执行操作之前需要验证文本是否存在,可以使用FindText方法。 此方法会搜索整个文档,并返回第一个与搜索查询匹配的TextElement

下面举例说明如何在上面提到的 Word 文档中搜索旧文本。

代码

:path=/static-assets/word/content-code-examples/how-to/replace-words-find-text.cs
using IronWord;
using System;

// Open existing Word
WordDocument doc = new WordDocument("sample.docx");

// Returns the first TextContent element that contains the specified text.
Console.WriteLine(doc.FindText("old text"));
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

输出

查找文本输出

如您所见,它返回了匹配的文本。

警告 如果FindText没有返回任何内容,则表示该文本在文档中不存在。 请确保搜索词拼写正确,并且大小写与文档中的文本一致。

常见问题解答

IronWord的用途是什么?

IronWord是一个用于在Word文档中自动化文本替换的C#库。它简化了个性化模板、更新报告以及批量管理内容的任务。

使用IronWord需要安装Microsoft Word吗?

不,IronWord不依赖于Microsoft Office Interop,因此不需要在服务器上安装Word。这使得它成为更快和更可扩展的Word文档处理解决方案。

如何使用IronWord替换Word文档中的文本?

要使用IronWord替换Word文档中的文本,请加载文档,访问段落,并使用ReplaceText方法将旧文本替换为新文本。

IronWord中的ReplaceText方法是否区分大小写?

是的,IronWord中的ReplaceText方法是区分大小写的,并替换所选段落中指定字符串的所有实例。

我可以使用IronWord替换整个文档中的文本吗?

是的,你可以通过遍历Paragraphs集合并将ReplaceText方法应用于每个段落来替换整个文档中的文本。

如果要替换的文本在段落中不存在,会发生什么?

如果在段落中找不到文本,则不执行任何操作,并循环继续到下一个段落。

如何使用IronWord验证文档中是否存在特定文本?

你可以使用FindText方法搜索整个文档并返回与查询匹配的第一个TextElement。

如果FindText没有返回任何结果,我应该怎么办?

如果FindText没有返回任何结果,这意味着文本在文档中不存在。请确保您的搜索词拼写正确并且与文档中的文本匹配大小写。

Curtis Chau
技术作家

Curtis Chau 拥有卡尔顿大学的计算机科学学士学位,专注于前端开发,精通 Node.js、TypeScript、JavaScript 和 React。他热衷于打造直观且美观的用户界面,喜欢使用现代框架并创建结构良好、视觉吸引力强的手册。

除了开发之外,Curtis 对物联网 (IoT) 有浓厚的兴趣,探索将硬件和软件集成的新方法。在空闲时间,他喜欢玩游戏和构建 Discord 机器人,将他对技术的热爱与创造力相结合。

准备开始了吗?
Nuget 下载 27,129 | Version: 2025.11 刚刚发布