本文介紹了在 .NET 或 .NET Core 應用程序中使用 C# 查找和替換 Word 文檔中的文本的各種方法。

查找和替換是 MS Word 的一個非常有用的功能,可以快速定位和替換文檔中的所需文本。當您處理較長的文檔時,它會變得更加方便和省時。如果您需要在數百個 Word 文檔中查找和替換文本,或者您需要自動執行此過程,您肯定會選擇以編程方式進行。因此,在本文中,我將向您展示如何使用 C# 在不同的場景中以編程方式查找和替換 Word 文檔中的文本。閱讀本文後,您將能夠:

用於在 Word 文檔中查找和替換文本的 C# 庫

首先,在 Visual Studio 中創建一個新的 C# 項目(控制台、ASP.NET 等)並通過 NuGet 包管理器或包管理器控制台安裝 Aspose.Words for .NET

通過 NuGet 包管理器安裝

在 Word DOC 中查找和替換文本

通過包管理器控制台安裝

PM> Install-Package Aspose.Words

在我們安裝了 Aspose.Words for .NET 之後,現在讓我們開始在以下 Word 文檔中查找和替換文本。

c#在word文檔中查找和替換文本

在 C# 中查找和替換 Word 文檔中的文本

以下是使用 Aspose.Words for .NET 在 Word 文檔中查找和替換特定文本的步驟。

FindReplaceOptions 類提供了各種選項來自定義查找/替換操作。以下代碼示例演示如何使用 C# 在 Word 文檔中查找和替換特定單詞或字符串。

// 加載 Word docx 文檔
Document doc = new Document("document.docx");
// 查找和替換文檔中的文本
doc.Range.Replace("sad", "[replaced]", new FindReplaceOptions(FindReplaceDirection.Forward));
// 保存 Word 文檔
doc.Save("Find-And-Replace-Text.docx");

輸出

使用c#在word文檔中查找文本

使用 C# 查找和替換 Word 文檔中的相似詞

您還可以自定義 API 以查找相似詞並將其替換為特定詞。例如,您可以找到“sad”和“mad”這兩個詞,然後用一個詞替換它們。下面的代碼示例展示瞭如何使用 C# 在 Word 文檔中查找和替換相似詞。

// 加載 Word docx 文檔
Document doc = new Document("document.docx");
FindReplaceOptions options = new FindReplaceOptions();
options.MatchCase = true; 
// 查找和替換文檔中的文本
doc.Range.Replace(new Regex("[B|S|M]ad"), "[replaced]", options);
// 保存 Word 文檔
doc.Save("Find-And-Replace-Multiple-Words.docx");

輸出

c#替換docx文件中的文本

在 C# 中使用正則表達式查找和替換文本

當您想要查找和替換以特定模式出現的文本時,可能會出現這種情況。例如,您需要隱藏/替換 Word 文檔中的所有電子郵件 ID。在這種情況下,您可以為電子郵件 ID 創建正則表達式並將其傳遞給 Document.Range.Replace(Regex, string, FindReplaceOptions) 方法。

以下代碼示例顯示如何根據 Word 文檔中的模式查找和替換文本。

// 加載 Word docx 文檔
Document doc = new Document("document.docx");
FindReplaceOptions options = new FindReplaceOptions();
options.FindWholeWordsOnly = true; 
// 為電子郵件 ID 設置正則表達式 
Regex EmailRegex = new Regex(@"[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?");
// 查找和替換文檔中的文本
doc.Range.Replace(EmailRegex, "[replaced]", options);
// 保存 Word 文檔
doc.Save("Find-And-Replace-Text-Using-Regex.docx");

輸出

怎麼替換word文檔中的文字

您還可以使用 HeaderFooter 類查找和替換 Word 文檔的頁眉或頁腳部分中的文本。 HeaderFooter.Range.Replace(string, string, FindReplaceOptions) 方法用於此目的。下面的代碼示例顯示瞭如何在 C# 中替換 Word 文檔的頁眉/頁腳中的文本。

// 加載 Word 文檔
Document doc = new Document("document.docx");
// 訪問 Word 文檔的頁眉/頁腳
HeaderFooterCollection headersFooters = doc.FirstSection.HeadersFooters;
HeaderFooter footer = headersFooters[HeaderFooterType.FooterPrimary];
// 設置選項
FindReplaceOptions options = new FindReplaceOptions
{
	MatchCase = false,
	FindWholeWordsOnly = false
};
// 替換 Word 文檔頁腳中的文本
footer.Range.Replace("This is footer of the document.", "Copyright (C) 2020 by Aspose Pty Ltd.", options);
// 保存 Word 文檔
doc.Save("Find-And-Replace-Text-in-Footer.docx");

輸出

在 C#.NET 中查找和替換 Word 文檔中的文本

使用 C# 在 Word 文檔中查找和替換帶有元字符的文本

可能存在特定文本或短語由多個段落、部分或頁面組成的情況。在這種情況下,簡單的查找和替換方法將無法有效地工作,我們將不得不處理分段符、分節符或分頁符。為此,Aspose.Words 允許您在搜索字符串或替換字符串中使用以下元字符:

  • &p:分段符
  • &b:分節符
  • &m: 分頁符
  • &l:換行符

下面的代碼示例演示如何在 Word 文檔中查找和替換帶有段落分隔符的文本。

// 加載 Word docx 文檔
Document doc = new Document("document.docx"); 
// 設置選項 
FindReplaceOptions options = new FindReplaceOptions
{
	MatchCase = false,
	FindWholeWordsOnly = false
};
// 用分段符替換文本
doc.Range.Replace("First paragraph ends.&pSecond paragraph starts.", "[replaced]", options);
// 保存 Word 文檔
doc.Save("Find-And-Replace-Text-Paragraph-Break.docx");

輸出

使用正則表達式 C# 查找和替換文本

結論

本文介紹了一些有用的方法,可以根據匹配或相似的單詞、短語和正則表達式模式以編程方式查找和替換 Word 文檔中的文本。這些功能不僅可以自動執行文本替換過程,還可以節省您在 Word 文檔中手動查找和替換操作所需的大量時間和精力。您可以使用 文檔 了解有關 Aspose Word Library 的更多信息。

相關文章)

提示:您可能對免費的 Text to GIF Converter 感興趣,它允許您從文本生成動畫。