替换文档中的单词或短语的原因可能有很多。无论您是想在公开共享文档之前删除敏感内容,还是想隐藏/删除电子邮件 ID 或社会安全号码等所有私人信息,您都需要编辑文档内容。本文将指导您如何使用 C# 在 .NET 应用程序中以编程方式编辑 Word 文档。我们将分别讨论如何通过隐藏文本进行编辑,以及如何使用不同的技术查找和替换文本、单词或短语。
下面将介绍以下主题:
用于替换文本的 .NET Redaction API
GroupDocs.Redaction for .NET 是文档编辑 API,允许从各种文件格式的文档中查找并替换预期数据。除了文本编辑和光栅化,API 还提供元数据、注释、电子表格和图像编辑功能。文档中提供了 Word 文档、电子表格、演示文稿、图像和 PDF 文档的支持的文件格式。
您可以从 下载部分 下载 DLLs 或 MSI 安装程序,或通过 NuGet 在您的 .NET 应用程序中安装 API。
PM> Install-Package GroupDocs.Redaction
在此过程中无需安装 MS Office 或任何其他第三方软件。现在让我们开始看看处理在文档中查找和替换文本的不同方法。以下是示例中用于演示的 Word 文档的屏幕截图。相同的方法将适用于其他文档格式,而无需对代码进行任何更改。
使用 C# 在 Word 文档中查找和替换单词或短语
以下步骤说明如何在 Word 文档中查找任何单词/短语,然后将所有出现的地方替换为 C# 应用程序中的一些其他文本。
- 使用 Redactor 类加载 Word 文档 (DOC/DOCX)。
- 使用 ExactPhraseRedaction 类和 ReplacementOptions 。
- 使用 Redactor 的 Apply 方法应用编辑。
- 使用 Save 方法保存更改。
以下代码查找并替换 C# 中的单词。更准确地说,它将所有出现的“John Doe”替换为“[censored]”。
// 使用 C# 查找确切的短语并将其替换为其他文本
using (Redactor redactor = new Redactor(@"path/document.docx"))
{
redactor.Apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions("[censored]")));
redactor.Save();
}
代码的输出如下。
使用 C# 在 Word 文件中进行区分大小写的搜索和替换
同样,您可以通过查找确切的单词并将其替换为任何其他单词来执行 Word 文档的区分大小写的编辑。以下代码使用 C# 替换 DOCX 文件中存在的单词“John Doe”,但这次搜索将区分大小写。
// 查找确切的短语(区分大小写) 并使用 C# 将其替换为其他文本
using (Redactor redactor = new Redactor(@"path/document.docx"))
{
redactor.Apply(new ExactPhraseRedaction("John Doe", true /*isCaseSensitive*/, new ReplacementOptions("[censored]")));
redactor.Save();
}
代码的输出如下。
使用 C# 使用正则表达式 (RegEx) 替换 Word 文件中的文本
要查找和替换 Word(DOC、DOCX) 文件中的任何文本模式,您可以使用正则表达式。以下步骤允许您使用 C# 使用 RegEx 编辑 Word 文档。
- 使用 Redactor 类加载 Word 文档。
- 使用带有 ReplacementOptions) 的 RegexRedaction 类查找正则表达式匹配 。
- 使用 Apply 方法替换所有正则表达式匹配文本。
- 使用保存方法获取编辑过的Word文件。
以下代码显示了如何使用 RegEx 在 Word 文件中查找文本模式,然后使用 C# 将其替换/隐藏为其他文本。
// 使用正则表达式查找文本并使用 C# 将其替换为其他文本
using (Redactor redactor = new Redactor(@"path/document.docx"))
{
redactor.Apply(new RegexRedaction("\\d{2}\\s*\\d{2}[^\\d]*\\d{6}", new ReplacementOptions("[censored]")));
redactor.Save();
}
上述代码的输出如下。
使用 C# 在带有彩色框的 Word 文档中隐藏机密文本
如果您不想替换您的私有内容而只想覆盖它,API 允许您通过在该内容上绘制一个框来隐藏该内容。以下代码使用 C# 将黑色矩形放置在预期文本上以使文本变黑。
// 查找文本并通过使用 C# 在其上绘制矩形来隐藏它
using (Redactor redactor = new Redactor(@"path/document.docx"))
{
redactor.Apply(new ExactPhraseRedaction("John Doe", new ReplacementOptions(System.Drawing.Color.Black)));
redactor.Save();
}
上述代码的输出如下。
获取免费 API 许可证
您可以 获得免费的临时许可证 以便在没有评估限制的情况下使用 API。
结论
最后,您学习了如何使用不同的技术在 Word(DOC、DOCX) 文件中查找文本并以不同方式替换结果。更准确地说,我们讨论了如何查找文本、单词或短语,即使它是区分大小写的搜索或在 C# 中使用正则表达式。后来我们用其他一些文本替换了搜索结果,或者将彩色矩形框放在搜索的文本上。
有关 API 的更多信息,请访问 文档。如有疑问,请通过 论坛 联系我们。