Word控件Spire.Doc 【文本】教程(5) ;从 Word 文档中的文本框中提取文本

以下指南重点介绍如何通过Spire.Doc for .NET从 C# 中 Word 文档的文本框中提取文本。

文本框的目的是允许用户输入程序要使用的文本信息。也可以从文本框中提取现有的文本信息。以下指南重点介绍如何通过Spire.Doc for .NET从 C# 中 Word 文档的文本框中提取文本。

首先,查看word文档中的文本框信息。

从文本框中提取文本

其次,下载Spire.Doc 并安装在您的系统上。Spire.Doc 安装干净、专业,并包含在 MSI 安装程序中。

然后通过以下路径在下载的 Bin 文件夹中添加 Spire.Doc.dll 作为参考:“..Spire.DocBinNET4.0 Spire.Doc.dll”。

现在介绍如何从文本框中提取文本的步骤。

第 1 步:从文件中加载一个 word 文档。

Document document = new Document();document.LoadFromFile(@"....Test.docx");

第 2 步:检查文档中是否存在文本框。

//Verify whether the document contains a textbox or notif (document.TextBoxes.Count > 0)

第 3 步:初始化 StreamWriter 类以保存接下来要提取的文本

using (StreamWriter sw = File.CreateText("result.txt"))

第 4 步:从文本框中提取文本。

//Traverse the documentforeach (Section section in document.Sections){foreach (Paragraph p in section.Paragraphs){foreach (DocumentObject obj in p.ChildObjects)//Extract text from paragraph in TextBoxif (objt.DocumentObjectType == DocumentObjectType.Paragraph){sw.Write((objt as Paragraph).Text)}//Extract text from Table in TextBoxif (objt.DocumentObjectType == DocumentObjectType.Table){Table table = objt as Table;ExtractTextFromTables(table, sw);}//Extract text from Tablestatic void ExtractTextFromTables(Table table, StreamWriter sw){for (int i = 0; i < table.Rows.Count; i++){TableRow row = table.Rows[i];for (int j = 0; j < row.Cells.Count; j++){TableCell cell = row.Cells[j];foreach (Paragraph paragraph in cell.Paragraphs){sw.Write(paragraph.Text);}}}}

调试后会出现如下结果: 

从文本框中提取文本

完整代码:

using System;using System.Collections.Generic;using System.Linq;using System.Text;using Spire.Doc;using Spire.Doc.Fields;using System.IO;using Spire.Doc.Documents;namespace ExtractTextFromTextBoxes{class Program{static void Main(string[] args){Document document = new Document();document.LoadFromFile(@"....Test.docx");//Verify whether the document contains a textbox or notif (document.TextBoxes.Count > 0){using (StreamWriter sw = File.CreateText("result.txt")){foreach (Section section in document.Sections){foreach (Paragraph p in section.Paragraphs){foreach (DocumentObject obj in p.ChildObjects){if (obj.DocumentObjectType == DocumentObjectType.TextBox){TextBox textbox = obj as TextBox;foreach (DocumentObject objt in textbox.ChildObjects){if (objt.DocumentObjectType == DocumentObjectType.Paragraph){sw.Write((objt as Paragraph).Text);}if (objt.DocumentObjectType == DocumentObjectType.Table){Table table = objt as Table;ExtractTextFromTables(table, sw);}}}}}}}}}static void ExtractTextFromTables(Table table, StreamWriter sw){for (int i = 0; i < table.Rows.Count; i++){TableRow row = table.Rows[i];for (int j = 0; j < row.Cells.Count; j++){TableCell cell = row.Cells[j];foreach (Paragraph paragraph in cell.Paragraphs){sw.Write(paragraph.Text);}}}}}}

欢迎下载|体验更多E-iceblue产品

获取更多信息请咨询在线客服  


标签:

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2022年6月22日
下一篇 2022年6月22日

相关推荐

发表回复

登录后才能评论