
Microsoft Word 文档是创建和共享文本内容的基础。如果您正在开发与 Word 文档交互的 C# 应用程序,您可能需要在 ASP.NET 中 使用 C# 从 Word 文档中提取文本,同时确保格式得以保留。无论您是在分析文本、提取特定部分,还是将内容合并到单个文档中,本指南将向您展示如何使用 最佳 C# 库进行 Word 文档文本提取 高效提取 Word 文档中的文本。
目录
C# 库提取 Word 文档中的文本
Aspose.Words for .NET 是一个功能丰富、易于使用的库,旨在处理 Word 文档。它提供了一整套功能,包括 .NET Word 文档文本提取、文档创建、操作和转换。Aspose.Words for .NET 是开发者寻求 高效 C# Word 文本提取 的宝贵工具。
您可以 下载 DLL 或直接通过 NuGet 使用包管理控制台安装该库:
PM> Install-Package Aspose.Words
理解 Word 文档中的文本提取
MS Word 文档由各种元素组成,例如段落、表格和图像。因此,文本提取需求可能会根据场景而有所不同。例如,您可能需要 在 C# 中从扫描的 Word 文档中提取文本 或 使用 C# .NET 从 Word 文件中提取文本。Word 文档中的每个元素都表示为一个节点,您将在提取过程中与之交互。让我们探讨如何在有效 处理 C# 文本提取中的 Word 格式 的同时,从 Word 文档中提取文本。
从 Word 文档中提取文本
在本节中,我们将实现一个用于 Word 文档的 C# 文本提取器。文本提取的工作流程包括:
- 定义要包含在文本提取过程中的节点。
- 提取指定节点之间的内容(包括或排除起始和结束节点)。
- 克隆提取的节点以创建一个包含提取内容的新 Word 文档。
让我们创建一个名为 ExtractContent 的方法,该方法将接受节点和其他文本提取参数。该方法将解析文档并克隆节点。以下是我们将传递给该方法的参数:
- StartNode 和 EndNode 作为内容提取的起始和结束点。这些可以是块级(例如 Paragraph、Table)或行内级节点(例如 Run、FieldStart、BookmarkStart 等)。
- 对于字段,传递相应的 FieldStart 对象。
- 对于书签,使用 BookmarkStart 和 BookmarkEnd 节点。
- 对于评论,利用 CommentRangeStart 和 CommentRangeEnd 节点。
- IsInclusive 指定标记是否包含在提取中。如果设置为 false 并且传入相同或连续的节点,将返回一个空列表。
以下是 ExtractContent 方法的完整实现,准确 从受保护的 Word 文档中提取文本:
此外,ExtractContent 方法还需要一些辅助方法来促进文本提取操作:
现在我们准备好利用这些方法并 使用 C# 从 Word 文档中提取文本。
提取 Word 文档中段落之间的文本
要提取 Word DOCX 文档中两个段落之间的内容,请按照以下步骤操作:
- 使用 Document 类加载 Word 文档。
- 使用 Document.FirstSection.Body.GetChild(NodeType.PARAGRAPH, int, boolean) 方法引用起始和结束段落。
- 调用 ExtractContent(startPara, endPara, true) 方法将节点提取到一个对象中。
- 使用 GenerateDocument(Document, extractedNodes) 辅助方法创建一个包含提取内容的文档。
- 最后,使用 Document.Save(string) 方法保存返回的文档。
以下是一个代码示例,演示如何通过提取第 7 段和第 11 段之间的内容来从大型 Word 文件中提取文本:
提取不同类型节点之间的文本
您还可以提取不同类型的节点之间的内容。例如,让我们提取一个段落和一个表格之间的内容,并将其保存到一个新的 Word 文档中。请按照以下步骤操作:
- 使用 Document 类加载 Word 文档。
- 使用 Document.FirstSection.Body.GetChild(NodeType, int, boolean) 方法引用起始和结束节点。
- 调用 ExtractContent(startPara, endPara, true) 方法将节点提取到一个对象中。
- 使用 GenerateDocument(Document, extractedNodes) 辅助方法创建一个包含提取内容的文档。
- 使用 Document.Save(string) 方法保存返回的文档。
以下是一个代码示例,说明如何在 C# 中提取段落和表格之间的文本:
基于样式提取段落之间的文本
现在让我们探讨如何基于样式提取段落之间的内容。在此示例中,我们将提取 Word 文档中第一个 “Heading 1” 和第一个 “Heading 3” 之间的内容。请按照以下步骤操作:
- 使用 Document 类加载 Word 文档。
- 使用 ParagraphsByStyleName(Document, “Heading 1”) 辅助方法将段落提取到一个对象中。
- 使用 ParagraphsByStyleName(Document, “Heading 3”) 辅助方法将段落提取到另一个对象中。
- 调用 ExtractContent(startPara, endPara, true) 方法,将两个段落数组中的第一个元素作为参数传递。
- 使用 GenerateDocument(Document, extractedNodes) 辅助方法创建一个包含提取内容的文档。
- 最后,使用 Document.Save(string) 方法保存返回的文档。
以下是一个代码示例,演示如何基于样式提取段落之间的内容:
了解更多关于文本提取的信息
在 这篇文档文章 中探索 .NET API 进行 Word 文档文本提取 的其他场景。
获取免费 Word 文本提取库
您可以获得 免费临时许可证,以便在没有评估限制的情况下提取文本。
结论
Aspose.Words for .NET 是一个多功能库,简化了 C# 从 Word 中提取文本的过程,同时保留格式。凭借其广泛的功能和用户友好的 API,您可以高效地处理 Word 文档并自动化涉及 处理 C# 文本提取中的特殊字符 的各种场景。无论您是在开发需要处理 Word 文档的应用程序,还是仅仅提取文本,Aspose.Words for .NET 都是开发者的宝贵工具。
通过 文档 探索 Aspose.Words for .NET 的其他功能。如果您有任何问题,请随时通过我们的 论坛 联系我们。
另请参阅
提示: 您可能还想查看 Aspose PowerPoint 转 Word 转换器,该转换器演示了流行的演示文稿到 Word 文档的转换过程。