How to Replace Text in a Word Document with C

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

IronWord讓 C# 開發人員能夠在不使用 Microsoft Office Interop 的情況下,以程式設計方式尋找和取代 Word 文件中的文本,從而為自動化文件更新、個人化範本和大量內容管理提供解決方案。

無論您是需要個人化範本、更新報告還是大量管理內容,在 Word 文件中自動替換IronWord都是常見需求。 IronWord 是一個 C# 函式庫,它可以輕鬆完成這項任務,從簡單的尋找替換作業到複雜的文件處理工作流程,它都能輕鬆應付。

IronWord直接操作 Word 文檔,無需依賴 Microsoft Office Interop。這意味著您無需在伺服器上安裝 Word,從而為後端流程和 Web 應用程式提供更快、更可靠且更具可擴展性的解決方案。 IronWord獨立於 Microsoft Office,這使得它在雲端部署、容器化應用程式和自動化文件處理管道方面具有特別高的價值。

在本操作指南中,我們將透過全面的程式碼範例向您展示如何在任何 Word 文件中尋找和取代文字。 無論您是進行簡單的文字替換,還是需要處理包含多個段落和格式的複雜文件結構, IronWord都能提供您所需的工具。

快速入門:輕鬆替換 Word 文件中的文本

本指南示範如何使用IronWord取代 Word 文件中的文字。 只需幾行 C# 程式碼,即可載入 DOCX 文件,取代指定文本,並儲存更新後的文件。 此流程無需 Microsoft Office Interop 即可運行,因此非常適合後端流程和 Web 應用程式。

  1. 使用NuGet套件管理器安裝https://www.nuget.org/packages/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

如何在Word文檔中替換文字?

使用IronWord替換 Word 文件中的文字非常直觀。 首先,我們使用 WordDocument 建構子來載入現有文件。 然後,我們存取 Paragraphs 屬性,並對特定段落使用 ReplaceText 方法。 這種方法可以讓你對要修改文件的哪些部分進行精細控制。

ReplaceText 方法接受兩個字串參數:要尋找的文字和要替換的文字。 此方法可完全取代所選段落中的所有符合實例,因此非常適合更新產品名稱、變更日期或個人化客戶資訊等場景。

提示 此方法區分大小寫,並將取代所選段落中所有出現的字串。

使用 Paragraphs 集合時,了解IronWord如何建立文件內容非常重要。 Word 文件中的每個段落都以集合中的獨立元素表示,可讓您精確地定位文件的特定部分。

提示本範例中使用的所有物件清單均採用從零開始的索引。

輸入文檔是什麼樣的?

在這個範例中,我們將使用這個包含兩個段落​​的範例 Word 文檔,這兩個段落的文字都是"舊文字"。 這個簡單的結構演示了段落層級的文字替換是如何運作的。

範例 Word 文件顯示了替換前的

我該如何編寫替換程式碼?

以下是將第一段的"舊文字"替換為"新文字"的程式碼。 請注意我們如何使用索引符號來定位特定段落,從而精確控制要修改的內容:

: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");
$vbLabelText   $csharpLabel

上面的程式碼示範了使用IronWord進行文字替換的簡單性。 透過載入文檔,選擇特定段落,然後呼叫 ReplaceText,您只需幾行程式碼即可修改文檔內容。 這種方法比傳統的Office互通方法更直接。

輸出結果是什麼樣子的?

取代操作後,Word 文件輸出顯示第一段為

輸出檔可以看到,只有第一段的文字被更改了,而第二段的文字保持不變。 當您需要更新特定部分而不影響整個文件時,這種選擇性替換功能至關重要。

如何替換多個出現的文字?

若要取代整個文件中出現的每一個單詞,請遍歷 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");
$vbLabelText   $csharpLabel

這種循環方法可以對文件進行全面覆蓋。 透過遍歷每個段落,您可以確保所有目標文字實例都被替換。 這種方法對於批次更新特別有用,例如更改公司名稱、更新術語或在文件中套用一致的格式。

多次替換後,文檔會變成什麼樣子?

Word 文件輸出顯示,在多次文字取代操作後,出現了兩行

從這份更新後的 Word 文件中可以看到,這兩個段落都已被替換為"新文字"。 這證明了循環方法在全面文本替換方面的有效性。

如何在替換之前驗證文字是否存在?

如果您需要在執行操作之前驗證文字是否存在,請使用 FindText 方法。 此方法搜尋整個文檔,並返回第一個與搜尋查詢相符的 TextElement。 當您需要在進行變更之前確認特定內容是否存在,或在基於文件內容建置條件邏輯時,此驗證步驟非常有用。

FindText 方法在以下情況尤其有用: 您需要記錄哪些文件包含特定文本

  • 您希望根據是否找到文字來執行不同的操作。
  • 您正在建立一個文件驗證系統 您需要產生文​​件內容報告

以下舉例說明如何在上面提到的 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"));
$vbLabelText   $csharpLabel

這段程式碼示範了使用IronWord進行文字搜尋的簡單性。 FindText 方法如果找到文字則傳回一個 TextElement 對象,如果未找到文字則傳回 null,這使得根據搜尋結果實作條件邏輯變得容易。

尋找文字的結果顯示什麼?

Visual Studio 偵錯控制台顯示 FindText 操作的

如您所見,它傳回了匹配的文本,證實了搜尋字詞存在於文件中。 這種驗證功能對於建立需要處理各種內容場景的強大文件處理應用程式至關重要。

警告 如果 FindText 傳回空值,則表示該文字在文件中不存在。 請確保搜尋字詞拼字正確,並且大小寫與文件中的文字一致。

文字替換最佳實踐

在 Word 文件中進行文字替換時,請遵循以下最佳實踐:

1.區分大小寫ReplaceText 區分大小寫。請將文字轉換為統一大小寫,以便進行不區分大小寫的替換。

2.效能最佳化:批量替換並一次保存,以減少 I/O 操作並提高效能。

3.錯誤處理:實現鎖定、損壞或意外文件內容的錯誤處理。

4.備份策略:在進行大量替換之前建立備份,尤其是在生產環境中。

5.記憶體管理:處理多個文件時,應正確釋放文檔對象,以防止記憶體洩漏。

IronWord 簡單易用的 API 讓這些最佳實踐的實作變得簡單,讓您能夠自信地建立強大的文件處理解決方案。

常見問題解答

如何使用 C# 替換 Word 文件中的文字?

IronWord 讓使用 C# 來取代 Word 文件中的文字變得簡單。使用 WordDocument 構建程式載入您的文件,然後使用 ReplaceText 方法找出並取代文字。該方法需要兩個參數:要尋找的文字和替換的文字。此功能不需要 Microsoft Office Interop,因此非常適合伺服器端應用程式。

我可以在沒有安裝 Microsoft Office 的情況下取代文字嗎?

是的,IronWord 可以直接操作 Word 文件,而不需要 Microsoft Office Interop。這表示您不需要在伺服器上安裝 Word,因此可提供更快速、更可靠的解決方案,非常適合雲端部署、容器化應用程式以及自動化文件處理管道。

在 DOCX 檔案中尋找和取代文字的最簡單方法是什麼?

最快速的方法是使用 IronWord 的三行方法:以檔案路徑建立 Document 物件,以新舊文字呼叫 ReplaceText 方法,然後再使用 SaveAs 儲存。這個最小的工作流程可以處理從載入到儲存更新後的文件的所有工作。

文字替換是否區分大小寫?

是的,IronWord 中的 ReplaceText 方法預設是區分大小寫的。它會取代選取段落或文件中所有匹配的實例,確保精確控制哪些文字會根據準確的大小寫匹配而被取代。

我可以只取代特定段落的文字嗎?

絕對可以。IronWord 透過段落屬性提供細粒度的控制。您可以從集合中存取個別段落,並只在特定段落上呼叫 ReplaceText,以進行有針對性的取代,而非整個文件的變更。

程式化文字替換的常見用例有哪些?

IronWord 常用於個人化範本、更新報告、大量內容管理以及自動化文件更新。它特別適用於更新產品名稱、變更日期、個人化客戶資訊等情境,或任何需要自動化文件處理的情況。

Curtis Chau
技術作家

Curtis Chau 擁有卡爾頓大學計算機科學學士學位,專注於前端開發,擅長於 Node.js、TypeScript、JavaScript 和 React。Curtis 熱衷於創建直觀且美觀的用戶界面,喜歡使用現代框架並打造結構良好、視覺吸引人的手冊。

除了開發之外,Curtis 對物聯網 (IoT) 有著濃厚的興趣,探索將硬體和軟體結合的創新方式。在閒暇時間,他喜愛遊戲並構建 Discord 機器人,結合科技與創意的樂趣。

準備好開始了嗎?
Nuget 下載 36,374 | 版本: 2026.3 剛剛發布
Still Scrolling Icon

還在捲動嗎?

想要快速證明? PM > Install-Package IronWord
執行範例 觀看您的資料變成 Word doc。