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. 使用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"。 此簡單結構示範了段落層級的文字替換運作方式。

展示替換前"原始文字"內容的 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");
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' 輸出

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

[[w:( 若 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通過Paragraphs屬性提供精細的控制。您可以從集合中存取個別段落並在特定段落上調用ReplaceText,以便針對性地替換,而不是整個文件範圍內的變更。

程式化文字替換的常見用例是什麼?

IronWord通常用於個性化模板、更新報告、大宗內容管理和自動化文件更新。它在各種情境中特別有用,比如更新產品名稱、更改日期、個性化客戶資訊或任何需要自動化文件處理的情況。

Curtis Chau
技術作家

Curtis Chau擁有Carleton大學的電腦科學學士學位,專精於前端開發,擁有Node.js、TypeScript、JavaScript和React的專業知識。Curtis熱衷於建立直觀且美觀的使用者介面,喜愛使用現代框架並建立結構良好、視覺吸引力的手冊。

除了開發,Curtis對物聯網(IoT)有濃厚的興趣,探索創新的方法來整合硬體和軟體。在空閒時間,他喜歡玩遊戲和建立Discord機器人,結合他對技術的熱愛與創造力。

準備開始了嗎?
Nuget 下載 49,323 | 版本: 2026.7 剛剛發布
Still Scrolling Icon

還在滾動?

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