1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > Word控件Spire.Doc 【文本】教程(5) ;从 Word 文档中的文本框中提取文本

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

时间:2019-08-19 09:23:54

相关推荐

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

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

Spire.Doc 最新下载(qun:767755948)/product/3368/download

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

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

然后通过以下路径在下载的 Bin 文件夹中添加 Spire.Doc.dll 作为参考:“..\Spire.Doc\Bin\NET4.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);}}}}}}

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。