在文档中替换文本并保存 – GroupDocs.Editor .NET

介绍

如果您需要以编程方式 在文档中替换文本,GroupDocs.Editor for .NET 为您提供了一种简洁、高性能的实现方式。在本教程中,我们将演示如何加载 Word 文件、替换字符串,然后将结果保存为多种流行格式,如 RTF、DOCM 和纯文本。无论您是构建文档自动化服务,还是为内部工具添加快速修复功能,下面的步骤都能让您在几分钟内完成。

快速答案

  • 最简单的替换文本方式是什么? 使用 Editor 加载文件,修改 HTML,然后对 EditableDocument 调用 Save。
  • 可以保存为哪些格式? 开箱即支持 RTF、DOCM 和 TXT。
  • 是否需要完整的 Office 安装? 不需要 – GroupDocs.Editor 完全在服务器端运行。
  • 需要哪些 .NET 版本? 支持 .NET Framework 4.6.1 及以上、.NET Core 3.1 +、.NET 5/6。
  • 生产环境是否必须购买许可证? 必须,商业许可证可解除评估限制;同时提供免费试用。

什么是“在文档中替换文本”?

“在文档中替换文本” 指的是以编程方式在文件内部查找特定字符串并用新内容替换,而无需手动编辑。此操作对于批量更新、模板化或数据驱动的文档生成至关重要。它帮助开发者实现文档个性化、在多个文件中统一应用法规变更,并将动态内容生成集成到更大的工作流中。

为什么使用 GroupDocs.Editor for .NET?

GroupDocs.Editor 支持 30 多种输入和输出格式——包括 DOCX、RTF、TXT、HTML、PDF 和 ODT——并且能够在 不将整个文档加载到内存 的情况下处理高达 500 MB 的文件。该 API 可在 Windows、Linux 和 macOS 上运行,提供跨平台灵活性,并在内部基准测试中对复杂布局实现了 99.9 % 的成功率。

前置条件

  • 开发环境: Visual Studio(任意近期版本)。
  • .NET Framework: 4.6.1 或更高(或 .NET Core 3.1 +)。
  • GroupDocs.Editor for .NET: 在此下载最新版本 here。
  • 基础 C# 知识: 熟悉类、方法和字符串操作。

有关详细用法,请参阅官方 documentation。

导入命名空间

要开始,请导入编辑和保存文档所需的命名空间。

Editor 类是所有文档操作的入口点。

// Placeholder for import statements – keep unchanged
```csharp
using System.IO;
using GroupDocs.Editor.Formats;
using GroupDocs.Editor.Options;

环境准备就绪后,让我们深入了解 在文档中替换文本 的具体步骤。

如何使用 GroupDocs.Editor 在文档中替换文本?

加载源文件后,通过 Editor 获取其 HTML 表示,对 HTML 字符串执行简单的 Replace,再从修改后的 HTML 重新创建 EditableDocument。最后,调用对应的 Save 重载将文档保存为目标格式。

步骤 1:加载文档

EditableDocument 对象保存了您正在编辑的文件的内存表示。

Editor 类加载文件并返回可供操作的 EditableDocument。

// Placeholder for loading code – keep unchanged
```csharp
string inputFilePath = "Your Sample Document";
Editor editor = new Editor(inputFilePath, delegate { return new Options.WordProcessingLoadOptions(); });
EditableDocument defaultWordProcessingDoc = editor.Edit();

步骤 2:修改文档

由于 GroupDocs.Editor 使用 HTML 快照,您可以将文档视为纯文本进行简单替换。

EditableDocument.GetHtml() 方法提取 HTML;更改字符串后,使用更新后的 HTML 创建新的 EditableDocument。

// Placeholder for modification code – keep unchanged
```csharp
string allEmbeddedInsideString = defaultWordProcessingDoc.GetEmbeddedHtml();
string allEmbeddedInsideStringEdited = allEmbeddedInsideString.Replace("Subtitle", "Edited subtitle");
EditableDocument editedDoc = EditableDocument.FromMarkup(allEmbeddedInsideStringEdited, null);

步骤 3:保存文档

GroupDocs.Editor 为每种支持的格式提供专用的 Save 方法。以下示例展示了三种常见目标。

保存为 RTF

SaveAsRtf 方法将编辑后的内容写入富文本格式,保留大部分样式。

// Placeholder for RTF save code – keep unchanged
```csharp
string outputRtfPath = Path.Combine(Constants.GetOutputDirectoryPath(inputFilePath), "editedDoc.rtf");
WordProcessingSaveOptions rtfSaveOptions = new WordProcessingSaveOptions(WordProcessingFormats.Rtf);
editor.Save(editedDoc, outputRtfPath, rtfSaveOptions);

保存为 DOCM

DOCM 是支持宏的 Word 格式;当需要保留宏功能时使用 SaveAsDocm。

// Placeholder for DOCM save code – keep unchanged
```csharp
string outputDocmPath = Path.Combine(Constants.GetOutputDirectoryPath(inputFilePath), "editedDoc.docm");
WordProcessingSaveOptions docmSaveOptions = new WordProcessingSaveOptions(WordProcessingFormats.Docm);
using (FileStream outputStream = File.Create(outputDocmPath))
{
    editor.Save(editedDoc, outputStream, docmSaveOptions);
}

保存为纯文本

若需轻量输出,SaveAsTxt 会去除所有格式,仅返回纯文本。

// Placeholder for TXT save code – keep unchanged
```csharp
string outputTxtPath = Path.Combine(Constants.GetOutputDirectoryPath(inputFilePath), "editedDoc.txt");
TextSaveOptions textSaveOptions = new TextSaveOptions
{
    Encoding = System.Text.Encoding.UTF8,
    PreserveTableLayout = true
};
editor.Save(editedDoc, outputTxtPath, textSaveOptions);

步骤 4:清理

务必释放 EditableDocument 和 Editor 实例,以关闭文件句柄并释放非托管资源。

Dispose 模式可确保临时文件被删除,内存得到回收。

// Placeholder for cleanup code – keep unchanged
```csharp
editedDoc.Dispose();
defaultWordProcessingDoc.Dispose();
editor.Dispose();

常见问题及解决方案

问题产生原因解决方案
文本未被替换HTML 可能包含编码字符(&nbsp;、<span>)。使用 HtmlAgilityPack 在替换前定位准确的节点。
保存的文件损坏输出流在释放前未刷新。调用 editableDocument.Save(...); 后再执行 editableDocument.Dispose();。
大文件性能下降为 300 页文档加载完整 HTML 会占用大量内存。启用 LoadOptions.UseMemoryMapping = true 以流式读取文件部分。
保存为 TXT 时格式丢失TXT 格式本身会剥离所有样式。若需要基本格式,可改为保存为 RTF。

常见问答

Q: GroupDocs.Editor 支持哪些文件格式?
A: GroupDocs.Editor 支持超过 30 种格式,包括 DOCX、RTF、TXT、HTML、PDF 和 ODT。完整列表请参阅官方文档。

Q: 我可以在购买前试用 GroupDocs.Editor 吗?
A: 可以,您可以在此获取免费试用 here。

Q: 如果遇到问题,是否提供支持?
A: 当然——请访问支持论坛 here,获取社区和产品团队的帮助。

Q: 如何获取临时许可证进行评估?
A: 请在此申请临时许可证 here。

Q: 哪里可以购买 GroupDocs.Editor 的完整版本?
A: 您可以在此购买完整版本 here。

最后更新: 2026-05-27
测试环境: GroupDocs.Editor 2.10 for .NET
作者: GroupDocs

相关教程