900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > C# 读取Word文本框中的文本 图片和表格(附VB.NET代码)

C# 读取Word文本框中的文本 图片和表格(附VB.NET代码)

时间:2020-11-21 15:21:12

相关推荐

C# 读取Word文本框中的文本 图片和表格(附VB.NET代码)

【概述】

Word中可插入文本框,在文本框中可添加文本、图片、表格等内容。本篇文章通过C#程序代码介绍如何来读取文本框中的文本、图片和表格等内容。附代码,有需要可作参考。

【程序环境】

程序中所需必要的程序集文件Spire.Doc.dll,及其他相关dll文件(见下文)。

用于测试的Word源文档如图:

【程序代码】

1.读取文本框中的文本

所需程序集:

【C#】

using Spire.Doc;using Spire.Doc.Documents;using Spire.Doc.Fields;using System;using System.IO;using System.Text;namespace ExtractText{class Program{static void Main(string[] args){//加载Word源文档Document doc = new Document();doc.LoadFromFile("test.docx");//获取文本框TextBox textbox = doc.TextBoxes[0];//创建StringBuilder类的对象StringBuilder sb = new StringBuilder();//遍历文本框中的对象,获取文本foreach (object obj in textbox.Body.ChildObjects){if (obj is Paragraph){String text = ((Paragraph)obj).Text;sb.AppendLine(text);}}//保存写入的txt文档到指定路径File.WriteAllText("ExtractedText.txt", sb.ToString());System.Diagnostics.Process.Start("ExtractedText.txt");}}}

【】

Imports Spire.DocImports Spire.Doc.DocumentsImports Spire.Doc.FieldsImports System.IOImports System.TextNamespace ExtractTextClass ProgramPrivate Shared Sub Main(args As String())'加载Word源文档Dim doc As New Document()doc.LoadFromFile("test.docx")'获取文本框Dim textbox As TextBox = doc.TextBoxes(0)'创建StringBuilder类的对象Dim sb As New StringBuilder()'遍历文本框中的对象,获取文本For Each obj As Object In textbox.Body.ChildObjectsIf TypeOf obj Is Paragraph ThenDim text As [String] = DirectCast(obj, Paragraph).Textsb.AppendLine(text)End IfNext'保存写入的txt文档到指定路径File.WriteAllText("ExtractedText.txt", sb.ToString())System.Diagnostics.Process.Start("ExtractedText.txt")End SubEnd ClassEnd Namespace

文本读取结果:

2.读取文本框中的图片

所需程序集:

【C#】

using Spire.Doc;using Spire.Doc.Documents;using Spire.Doc.Fields;using System;namespace ExtractImg{class Program{static void Main(string[] args){//加载Word源文档Document doc = new Document();doc.LoadFromFile("test.docx");//获取文本框TextBox textbox = doc.TextBoxes[0]; int index = 0 ;//遍历文本框中所有段落for (int i = 0 ; i < textbox.Body.Paragraphs.Count;i++){Paragraph paragraph = textbox.Body.Paragraphs[i];//遍历段落中的所有子对象for (int j = 0; j < paragraph.ChildObjects.Count; j++){object obj = paragraph.ChildObjects[j];//判定对象是否为图片if (obj is DocPicture){//获取图片DocPicture picture = (DocPicture) obj;String imageName = String.Format("Image-{0}.png", index);picture.Image.Save(imageName, System.Drawing.Imaging.ImageFormat.Png);index++;}}}}}}

【】

Imports Spire.DocImports Spire.Doc.DocumentsImports Spire.Doc.FieldsNamespace ExtractImgClass ProgramPrivate Shared Sub Main(args As String())'加载Word源文档Dim doc As New Document()doc.LoadFromFile("test.docx")'获取文本框Dim textbox As TextBox = doc.TextBoxes(0)Dim index As Integer = 0'遍历文本框中所有段落For i As Integer = 0 To textbox.Body.Paragraphs.Count - 1Dim paragraph As Paragraph = textbox.Body.Paragraphs(i)'遍历段落中的所有子对象For j As Integer = 0 To paragraph.ChildObjects.Count - 1Dim obj As Object = paragraph.ChildObjects(j)'判定对象是否为图片If TypeOf obj Is DocPicture Then'获取图片Dim picture As DocPicture = DirectCast(obj, DocPicture)Dim imageName As [String] = [String].Format("Image-{0}.png", index)picture.Image.Save(imageName, System.Drawing.Imaging.ImageFormat.Png)index += 1End IfNextNextEnd SubEnd ClassEnd Namespace

图片读取结果:

3.读取文本框中的表格

所需程序集:

【C#】

using Spire.Doc;using Spire.Doc.Documents;using Spire.Doc.Fields;using System.IO;using System.Text;namespace ExtractTable{class Program{static void Main(string[] args){//加载Word文档Document doc = new Document();doc.LoadFromFile("test.docx");//获取文本框TextBox textbox = doc.TextBoxes[0];//获取文本框中表格Table table = textbox.Body.Tables[0] as Table;StringBuilder sb = new StringBuilder();//遍历表格中的段落并提取文本foreach (TableRow row in table.Rows){foreach (TableCell cell in row.Cells){foreach (Paragraph paragraph in cell.Paragraphs){sb.AppendLine(paragraph.Text);}}}File.WriteAllText("ExtractedTable.txt", sb.ToString());}}}

【】

Imports Spire.DocImports Spire.Doc.DocumentsImports Spire.Doc.FieldsImports System.IOImports System.TextNamespace ExtractTableClass ProgramPrivate Shared Sub Main(args As String())'加载Word文档Dim doc As New Document()doc.LoadFromFile("test.docx")'获取文本框Dim textbox As TextBox = doc.TextBoxes(0)'获取文本框中表格Dim table As Table = TryCast(textbox.Body.Tables(0), Table)Dim sb As New StringBuilder()'遍历表格中的段落并提取文本For Each row As TableRow In table.RowsFor Each cell As TableCell In row.CellsFor Each paragraph As Paragraph In cell.Paragraphssb.AppendLine(paragraph.Text)NextNextNextFile.WriteAllText("ExtractedTable.txt", sb.ToString())End SubEnd ClassEnd Namespace

表格数据读取结果:

【总结】

以上是本文关于通过C#程序读取Word中的文本框的方法。所附代码供参考。

另推荐阅读《Java 读取Word文本框中的文本、图片和表格》

(本文完,如需转载,请务必注明出处!!)

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