替換文檔中的單詞或短語可能有很多原因。無論您是想在公開共享文檔之前刪除敏感內容,還是想隱藏/刪除所有私人信息,如電子郵件 ID 或社會安全號碼,您都需要編輯文檔內容。本文將指導您如何使用 C# 在 .NET 應用程序中以編程方式編輯 Word 文檔。我們將分別討論如何通過隱藏文本進行編輯,以及如何使用不同的技術查找和替換文本、單詞或短語。
下面將涵蓋以下主題:
用於替換文本的 .NET 編輯 API
GroupDocs.Redaction for .NET 是文檔編輯 API,它允許從各種文件格式的文檔中查找並替換預期數據。除了文本編輯和柵格化,API 還提供元數據、註釋、電子表格和圖像編輯功能。文檔中提供了 Word 文檔、電子表格、演示文稿、圖像和 PDF 文檔的支持的文件格式。
您可以從 下載部分 下載 DLL 或 MSI 安裝程序,或通過 NuGet 在您的 .NET 應用程序中安裝 API /packages/groupdocs.redaction)。
PM> Install-Package GroupDocs.Redaction
在此過程中無需安裝 MS Office 或任何其他第三方軟件。現在讓我們開始看看在文檔中查找和替換文本的不同方法。下面是演示示例中使用的Word文檔的截圖。相同的方法將適用於其他文檔格式,而無需更改代碼。
使用 C# 在 Word 文檔中查找和替換單詞或短語
以下步驟解釋瞭如何在 Word 文檔中查找任何單詞/短語,然後將所有出現的地方替換為 C# 應用程序中的其他文本。
- 使用 Redactor 類加載 Word 文檔 (DOC/DOCX)。
- 使用帶有 [ReplacementOptions](https://apireference.groupdocs.com /redaction/net/groupdocs.redaction.redactions/replacementoptions)。
- 使用 Redactor 的 Apply 方法應用密文。
- 使用 保存 方法保存更改。
以下代碼在 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 文檔。
- 使用 RegexRedaction 類和 [ReplacementOptions](https://apireference.groupdocs.com/redaction/ net/groupdocs.redaction.redactions/replacementoptions)。
- 使用 Apply 方法替換所有正則表達式匹配文本。
- 使用 Save 方法獲取編輯後的 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 的更多信息,請訪問 文檔。如有疑問,請通過論壇 聯繫我們。