如何在 C# 中從 DOCX 檔案中刪除文本

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

IronWord 提供了多種從 Word 文件中刪除文本的方法(C#),包括刪除整個段落、特定文本行以及在刪除前按內容查找文本,所有這些都能保持文件結構和格式的完整性。

開始使用 IronWord


快速入門:從 DOCX 中刪除文字

  1. 透過 NuGet 套件管理器安裝 IronWord
  2. 使用WordDocument載入您的 DOCX 文件
  3. 透過索引存取段落或文字行
  4. 對目標元素呼叫Remove()方法
  5. 儲存修改後的文檔

Nuget Icon立即開始使用 NuGet 建立 PDF 檔案:

  1. 使用 NuGet 套件管理器安裝 IronWord

    PM > Install-Package IronWord

  2. 複製並運行這段程式碼。

    using IronWord;
    
    // Load document
    WordDocument doc = new WordDocument("document.docx");
    
    // Remove second paragraph
    doc.Paragraphs[1].Remove();
    
    // Save changes
    doc.SaveAs("document_modified.docx");
  3. 部署到您的生產環境進行測試

    立即開始在您的專案中使用 IronWord,免費試用!
    arrow pointer

如何從 Word 文件中刪除整個段落?

若要從 Word 文件中刪除段落,請使用其索引位置透過Paragraphs集合存取該段落。 此範例刪除索引為 1 的段落,這將刪除其所有內容和格式。 刪除後,文件結構會自動調整,後續段落會向上移動以填補空缺。

在進行段落刪除操作時,請記住索引是從零開始的。 第一段的索引為 0,第二段的索引為 1,依此類推。 Remove()方法會從文件結構中完全刪除段落元素,包括該段落中的所有文字、格式以及任何嵌入的內容,例如圖像或超連結。

:path=/static-assets/word/content-code-examples/how-to/remove-text-simple.cs
using IronWord;

// Load a DOCX document
WordDocument doc = new WordDocument("text_document.docx");

// Remove the second paragraph
doc.Paragraphs[1].Remove();

// Export the file
doc.SaveAs("text_document_modified.docx");
$vbLabelText   $csharpLabel

文件移除前的樣子是什麼樣的?

刪除文字前的 Word 文檔,包含三個彩色段落,圖中顯示了格式設定功能區和段落工具。

刪除後文檔結構會發生怎樣的變化?

Word 文件顯示了三個不同顏色的 Lorem ipsum 段落,示範了段落刪除前的文字格式。

刪除操作會保持文件的整體格式和結構不變。 其餘段落保留其原有的顏色和格式屬性。 這是使用 IronWord 刪除方法的關鍵優勢——它們在乾淨俐落地刪除目標元素的同時,也能保持周圍內容的完整性。

如何刪除段落中特定的格式化文字?

一個段落可以包含多個文字行,其中每個文字行代表具有一致格式屬性(如粗體、斜體或顏色)的文字。 了解文字結構對於精確的內容操作至關重要。 段落內每次格式發生變化時,都會開始一個新的文字運行。 例如,如果一個句子中有一個單字是粗體,那麼通常會有三個文本段:粗體單字之前的文字、粗體單字本身以及粗體單字之後的文字。

若要刪除段落中的特定格式化內容,請造訪Texts集合,然後按索引尋找所需的文字。 此範例刪除了第一段中的第三段文字(索引 2),而保留了其他內容。 這種精細的控制方式可讓您在刪除特定格式化片段的同時保留段落結構。

:path=/static-assets/word/content-code-examples/how-to/remove-text-text-run.cs
using IronWord;

// Load a DOCX document
WordDocument doc = new WordDocument("sample.docx");

// Remove the first paragraph's third textrun
doc.Paragraphs[0].Texts[2].Remove();

// Export the file
doc.SaveAs("sample_after_textrun_removal.docx");
$vbLabelText   $csharpLabel

處理文字時,請記得刪除一個文字不會影響周圍文字的格式。 每次文字運行都獨立保持其格式屬性。 這樣就可以精準地刪除特定的格式化內容,而不會破壞剩餘文字的視覺外觀。

刪除前文本運行會發生什麼變化?

Word 文件顯示了在執行文字刪除操作之前的帶下劃線格式的文本

刪除一段文字會如何影響段落格式?

Word 文件中,在刪除特定文字後,格式化段落的底線文字仍然存在。

如圖所示,刪除特定文字行不會影響其餘內容的格式完整性。 下劃線的文字和其他格式屬性保持不變,這表示文字運行操作非常精確。

如何根據內容而非位置找到並刪除文字?

FindText方法根據文字匹配而不是位置動態地定位和刪除內容。 這對於刪除文件中任何位置的無效文字、佔位符或特定內容尤其有用,而無需知道其確切位置。 此方法傳回符合的文字元素,如果找不到則傳回 null,從而允許在呼叫Remove之前進行 null 檢查以安全地刪除元素。

這種方法在處理需要刪除佔位符文字的範本文檔,或清理具有已知錯誤模式的文檔時非常有價值。 FindText方法預設執行區分大小寫的搜索,確保與目標內容精確匹配。

:path=/static-assets/word/content-code-examples/how-to/remove-text-find.cs
using IronWord;

// Load the document
WordDocument doc = new WordDocument("sample.docx");

// Find and remove erroneous text
var textToRemove = doc.FindText("ERRONEOUS TEXT IS HERE.");
textToRemove?.Remove();

// Save the cleaned document
doc.SaveAs("sample_cleaned.docx");
$vbLabelText   $csharpLabel

上述程式碼中的空條件運算子( ?. )對於安全執行至關重要。 如果找不到文本, FindText返回 null,空條件運算子可防止NullReferenceException 。 這種模式可以使你的程式碼在處理目標文字可能並非總是存在的文件時更加健壯。

在使用"尋找和刪除"功能前,我應該查找哪些內容?

Word 文件中顯示了 Lorem ipsum 文本,其中

FindText 如何處理多次出現的情況?

Word文件顯示了Lorem ipsum內容尋找並刪除操作後帶下劃線的文字部分。

使用FindText時,請注意它會傳回符合文字的第一個出現位置。 如果需要刪除文件中所有出現的特定文本,請實現一個循環,不斷搜尋和刪除,直到找不到更多匹配項為止。 這種迭代方法可確保對整個文件進行全面的文字刪除。

尋找和刪除功能會保留文件中除已刪除文字之外的格式和結構。 段落分隔符號、周圍文字的格式和文件樣式保持不變,因此在刪除不需要的內容的同時,可以安全地保持文件的一致性。

常見問題解答

如何用 C# 從 Word 文件中移除整個段落?

使用 IronWord,您可以透過 Paragraphs 集合使用其索引位置存取該段落,並呼叫 Remove() 方法來移除該段落。例如,doc.Partsagraph[1].Remove() 移除第二段(索引 1)。移除後,文件結構會自動調整,後續的段落會向上移動來填補空隙。

移除文字後,文件結構會如何?

IronWord 在移除文字時,會維持文件的整體格式與結構。剩餘的段落會保留原有的顏色和格式屬性,而且文件會自動重新流動以消除空隙。這可確保在乾淨移除目標元素的同時,保留周遭內容的完整性。

我可以移除段落中特定的格式化文字,而不是整個段落嗎?

是的,IronWord 允許您移除段落中的特定文字運行。由於段落可以包含多個文字符號 (每個符號代表格式一致的文字),因此您可以針對個別符號進行移除,同時保留段落的其他內容和結構。

什麼是 Word 文件中的文字運行?

在 IronWord 中,文字運行代表段落中具有一致格式屬性(如粗體、斜體或顏色)的部分文字。每當段落中的格式發生變化時,就會開始一個新的文字運行。在處理 Word 文件時,瞭解文字運行對於精確的內容處理至關重要。

從 Word 文件中移除文字後,該如何儲存變更內容?

使用 IronWord 移除文字後,您可以呼叫 SaveAs() 方法儲存修改後的文件。例如,doc.SaveAs("document_modified.docx") 會儲存更新後的文件,並套用所有移除的變更。這會建立一個新的檔案,同時保留原始的文件。

移除段落是否也會刪除圖片或超連結等內嵌內容?

是的,當您在段落上使用 IronWord 的 Remove() 方法時,會將段落元素從文件結構中完全移除,包括該段落中的所有文字運行、格式化以及任何內嵌內容,例如圖片或超連結。

艾哈邁德·索海爾
全端開發工程師

Ahmad 是一位全端開發人員,精通 C#、Python 和 Web 技術。他對建立可擴展的軟體解決方案有著濃厚的興趣,並樂於探索如何在實際應用中實現設計與功能的完美結合。

在加入 Iron Software 團隊之前,Ahmad 曾從事自動化專案和 API 整合工作,專注於提高效能和開發者體驗。

在空閒時間,他喜歡嘗試 UI/UX 設計理念,為開源工具做出貢獻,偶爾還會涉足技術寫作和文件編寫,使複雜的主題更容易理解。

準備好開始了嗎?
Nuget 下載 29,594 | 版本: 2025.12 剛剛發布