如何在 C# 中删除 DOCX 中的文本

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

IronWord 提供多种用 C# 从 Word 文档中删除文本的方法,包括删除整个段落、特定文本运行,以及在删除前按内容查找文本,所有这些都能保持文档结构和格式的完整性。

快速入门:从 DOCX 中删除文本

1.通过 NuGet 软件包管理器安装 IronWord

  1. 使用 WordDocument 加载您的 DOCX 文件
    3.按索引访问段落或文本运行
  2. 对目标元素调用 Remove()
    5.保存修改后的文档
  1. 使用 NuGet 包管理器安装 https://www.nuget.org/packages/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 文档,文本删除前有三个彩色段落,显示格式功能区和段落工具

删除后文档结构如何变化?

显示三个彩色 Lorem ipsum 段落的 Word 文档,演示删除段落前的文本格式

删除操作应保持文档的整体格式和结构。 其余段落保留原有颜色和格式属性。 这也是使用 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

上述代码中的空条件运算符(?.)对于安全执行至关重要。 如果找不到文本,则返回 null,并且空条件运算符会阻止 FindText。 在处理目标文本可能并不总是存在的文档时,这种模式会使您的代码更加稳健。

在使用查找和删除之前,我应该查找哪些内容?

在使用查找和替换之前,Word 文档显示 Lorem ipsum 文本,并用粗体显示

FindText 如何处理多次出现?

在对 Lorem ipsum 内容进行查找和删除操作后,显示下划线文本部分的 Word 文档

使用 FindText 时,请注意它返回匹配文本的第一个实例。 如果您需要删除整个文档中出现的所有特定文本,请执行一个循环,继续搜索和删除,直到找不到匹配的文本为止。 这种迭代方法可确保对整个文档进行全面的文本删除。

查找和删除功能保留了删除文本之外的文档格式和结构。 段落分隔、周围文本格式和文档样式保持不变,这样既能保持文档的一致性,又能删除不需要的内容。

常见问题解答

如何用 C# 从 Word 文档中删除整个段落?

使用 IronWord,您可以通过使用段落索引位置访问段落集合并调用 Remove() 方法来删除段落。例如,doc.Partagraph[1].Remove() 删除第二段(索引 1)。删除后,文档结构会自动调整,后续段落会向上移动以填补空缺。

删除文本后,文档结构会发生什么变化?

IronWord 在删除文本时保持了文档的整体格式和结构。剩余的段落保留其原有的颜色和格式属性,文档会自动重新排版以消除空白。这样,在干净利落地删除目标元素的同时,还能确保周围内容的完整性。

我能否删除段落中的特定格式化文本,而不是整个段落?

是的,IronWord 允许您删除段落中的特定文本行。由于段落可以包含多个文本行(每个文本行代表格式一致的文本),因此您可以在保留段落其余内容和结构的同时,针对并删除单个文本行。

什么是 Word 文档中的文本运行?

在 IronWord 中,文本流代表一个段落中具有粗体、斜体或颜色等一致格式属性的部分文本。每当段落中的格式发生变化时,就会开始一个新的文本流。在处理 Word 文档时,理解文本流对于精确操作内容至关重要。

从 Word 文档中删除文本后如何保存更改?

使用 IronWord 删除文本后,您可以调用 SaveAs() 方法保存修改后的文档。例如,doc.SaveAs("document_modified.docx") 保存了应用了所有删除更改的更新文档。这将创建一个新文件,同时保留原始文档。

删除段落是否也会删除图片或超链接等嵌入内容?

是的,当您对一个段落使用 IronWord 的 Remove() 方法时,它会从文档结构中完全删除该段落元素,包括该段落中的所有文本运行、格式化以及任何嵌入内容(如图片或超链接)。

Ahmad Sohail
全栈开发者

Ahmad 是一名全栈开发人员,拥有扎实的 C#、Python 和 Web 技术基础。他对构建可扩展的软件解决方案深感兴趣,并喜欢探索设计和功能在实际应用中如何结合。

在加入 Iron Software 团队之前,Ahmad 致力于自动化项目和 API 集成,专注于提高性能和开发人员体验。

在业余时间,他喜欢尝试 UI/UX 想法,贡献开源工具,并偶尔从事技术写作和文档工作,以便让复杂主题更易于理解。

准备开始了吗?
Nuget 下载 36,374 | 版本: 2026.3 刚刚发布
Still Scrolling Icon

还在滚动吗?

想快速获得证据? PM > Install-Package IronWord
运行示例 观看您的数据变成 Word 文档。