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 是一款 C# 程式庫,能讓這項任務變得簡單直觀,從簡單的"尋找與替換"操作到複雜的文件處理工作流程,皆能輕鬆處理。

IronWord 可直接操作 Word 文件,無需依賴 Microsoft Office Interop。這意味著您無需在伺服器上安裝 Word,從而為後端流程和網頁應用程式提供更快速、更可靠且具可擴展性的解決方案。 正因無需依賴 Microsoft Office,IronWord 對於雲端部署、容器化應用程式以及自動化文件處理流程而言,具有特別高的價值。

在這份操作指南中,我們將透過詳盡的程式碼範例,向您展示如何在任何 WORD 文件中尋找並替換文字。 無論您只是進行簡單的文字替換,還是需要處理包含多個段落與格式設定的複雜文件結構,IronWord 都能提供您所需的工具。

快速入門:輕鬆替換 WORD 文件中的文字

本指南將示範如何使用 IronWord 替換 WORD 文件中的文字。 只需幾行 C# 程式碼,您即可載入 DOCX 檔案、替換指定文字,並儲存更新後的文件。 此流程無需 Microsoft Office Interop 即可運作,因此非常適合用於後端流程和網頁應用程式。

  1. using 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 文件中替換文字?

using IronWord 替換 WORD 文件中的文字非常直觀。 首先,我們使用 WordDocument 建構函式載入現有文件。 接著,我們存取 Paragraphs 屬性,並對特定段落使用 ReplaceText 方法。 此方法讓您能精細控制要修改文件的哪些部分。

ReplaceText 方法接受兩個字串參數:要搜尋的文字以及用以取代的文字。 此方法會將選定段落中所有符合條件的內容進行完整替換,非常適合用於更新產品名稱、變更日期或客製化客戶資訊等情境。

提示 ReplaceText 方法會區分大小寫,並將選取段落中所有該字串的出現位置替換。

在使用 Paragraphs 集合時,了解 IronWord 如何組織文件內容至關重要。 WORD 文件中的每個段落皆在集合中以獨立元素呈現,讓您能精準鎖定文件中的特定區段。

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

原始文件呈現為何種樣式?

在此範例中,我們將使用這份包含兩段文字的 WORD 範例文件,兩段文字皆為"old text"。 此簡單結構示範了段落層級的文字替換運作方式。

展示替換前

如何撰寫替代程式碼?

以下是將第一段落中的"舊文字"替換為"新文字"的程式碼。 請注意我們如何使用索引標記來鎖定特定段落,藉此精確控制哪些內容會被修改:

: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");
Imports IronWord

' Open existing Word
Dim doc As 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 文件輸出範例:執行替換操作後,第一段顯示

如您在輸出檔案中所見,僅第一段的文字已進行修改,而第二段則保持原樣。 當您需要更新特定段落而不影響整份文件時,此選擇性替換功能至關重要。

如何替換多處重複的文字?

若要替換整份文件中某個 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");
Imports IronWord

' Open existing Word
Dim doc As New WordDocument("sample.docx")

' Loop through each paragraph to find and replace text
For i As Integer = 0 To doc.Paragraphs.Count - 1
    ' Replace all occurrences of "old text" with "new text" in the current paragraph
    doc.Paragraphs(i).ReplaceText("old text", "new text")
Next

' 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"));
Imports IronWord
Imports System

' Open existing Word
Dim doc As 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 操作產生的 'old_text' 輸出

如您所見,系統已返回相符的文字,確認該搜尋詞彙確實存在於文件中。 此驗證功能對於建置需處理各種內容情境的強健文件處理應用程式至關重要。

警告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 的三步驟流程:使用檔案路徑建立文件物件,呼叫 ReplaceText 方法並傳入舊文字與新文字,最後透過 SaveAs 儲存。這個簡潔的工作流程涵蓋了從載入到儲存更新後文件的所有步驟。

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

是的,IronWord 中的 ReplaceText 方法預設為區分大小寫。它將替換選取段落或文件中所有符合條件的文字,確保能根據精確的大小寫匹配,精確控制哪些文字被替換。

我可以只替換特定段落中的文字嗎?

沒問題。IronWord 透過 Paragraphs 屬性提供細緻的控制功能。您可以從集合中存取個別段落,並僅對特定段落呼叫 ReplaceText 方法,從而實現針對性的文字替換,而非對整個文件進行更改。

程式化文字替換有哪些常見的應用情境?

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

Curtis Chau
技術撰稿人

Curtis Chau 擁有卡爾頓大學(Carleton University)的電腦科學學士學位,專精於前端開發,並精通 Node.js、TypeScript、JavaScript 及 React。他熱衷於打造直觀且美觀的用戶介面,喜歡運用現代框架,並創建結構完善、視覺上吸引人的手冊。

除了開發工作之外,Curtis 對物聯網(IoT)抱有濃厚興趣,致力於探索整合硬體與軟體的創新方法。閒暇時,他喜歡玩遊戲和開發 Discord 機器人,將對科技的熱愛與創意相結合。

準備開始了嗎?
Nuget 下載 44,829 | 版本: 2026.5 just released
Still Scrolling Icon

還在往下捲動嗎?

想要快速確認成果嗎? PM > Install-Package IronWord
執行範例 觀看您的資料轉為 WORD 文件。