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

【概述】

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

【程序环境】

程序中所需必要的程序集文件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");

}

}

}

VB.NET

Imports Spire.Doc

Imports Spire.Doc.Documents

Imports Spire.Doc.Fields

Imports System.IO

Imports System.Text

Namespace ExtractText

Class Program

Private 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.ChildObjects

If TypeOf obj Is Paragraph Then

Dim text As [String] = DirectCast(obj, Paragraph).Text

sb.AppendLine(text)

End If

Next

'保存写入的txt文档到指定路径

File.WriteAllText("ExtractedText.txt", sb.ToString())

System.Diagnostics.Process.Start("ExtractedText.txt")

End Sub

End Class

End 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++;

}

}

}

}

}

}

VB.NET

Imports Spire.Doc

Imports Spire.Doc.Documents

Imports Spire.Doc.Fields

Namespace ExtractImg

Class Program

Private 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 - 1

Dim paragraph As Paragraph = textbox.Body.Paragraphs(i)

'遍历段落中的所有子对象

For j As Integer = 0 To paragraph.ChildObjects.Count - 1

Dim 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 += 1

End If

Next

Next

End Sub

End Class

End 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());

}

}

}

VB.NET

Imports Spire.Doc

Imports Spire.Doc.Documents

Imports Spire.Doc.Fields

Imports System.IO

Imports System.Text

Namespace ExtractTable

Class Program

Private 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.Rows

For Each cell As TableCell In row.Cells

For Each paragraph As Paragraph In cell.Paragraphs

sb.AppendLine(paragraph.Text)

Next

Next

Next

File.WriteAllText("ExtractedTable.txt", sb.ToString())

End Sub

End Class

End Namespace

表格数据读取结果:

【总结】

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

(0)

相关推荐

  • Java 读取Word文本框中的文本、图片和表格

    Word可插入文本框,文本框中可嵌入文本.图片.表格等内容.对文档中的已有文本框,也可以读取其中的内容.本文以Java程序代码来展示如何读取文本框,包括读取文本框中的文本.图片以及表格等. [程序环境 ...

  • wps文本框中怎么插入图片

    wps給文本框插入图片的方法 1.打开WPS文档,点击工具栏的"插入",然后插入文本框 2.绘制好文本框后,再次点击插入,然后插入"形状",插入喜欢的形状 3. ...

  • Word文档中怎样给图片和表格自动添加标题

    在编辑Word文档时,有时需要给图片和表格添加标题,如果一个个手动添加会很麻烦,我们可以设置自动给图片或是表格添加标题,下面小编就来介绍怎么设置 操作方法 01 打开一个Word文档,点击菜单栏的&q ...

  • 在Word2003文本框中对齐文本

    动画演示: ①将闪动的光标置于文档标题后,单击“插入”→“分隔符”,在对话框中选中“分节符”中的“下一页”项,单击“确定”按钮,为文档添加一个分节符,并将插入点后的内容分至下一页。 ② 将光标移至要重 ...

  • word文本框中黏贴图片显示不完整?

    有时候我们需要在文本框中插入图片,但是可能会显示不完整.今天我们就来看看怎么解决这个问题? 操作方法 01 我们在文本框中,插入图片,也许会出现下面的这种情况,图片只出现了一部分,其他大部分都没有出来 ...

  • Word 2007 中的形状或文本框中放置文字

    文本框 (文本框:一种可移动.可调大小的文字或图形容器.使用文本框,可以在一页上放置数个文字块,或使文字按与文档中其他文字不同的方向排列.)和大多数形状(线条.连接线和任意多边形 (任意多边形:使用& ...

  • word文档中的文本框如何设置添加虚线框

    今天跟大家介绍一下word文档中的文本框如何设置添加虚线框的具体操作步骤.1. 首先打开电脑,找到桌面上的word文档,双击打开2. 进入编辑页面后,依次点击上方菜单栏中的插入---文本框---横向选 ...

  • Word文本框中的文字如何设置竖排显示

    今天给大家介绍一下Word文本框中的文字如何设置竖排显示的具体操作步骤.1. 首先打开电脑上想要编辑的Word文档,如图,进入编辑页面后,将想要设置的[文本框]选中,右键,在打开的菜单中,选择[设置形 ...

  • Word如何对齐文本框中不同长度的文字

    Word是现在十分常用的办公软件之一,有些用户想知道如何对齐文本框中不同长度的文字,接下来小编就给大家介绍一下具体的操作步骤.具体如下:1. 首先第一步打开电脑中的Word文档,根据下图箭头所指,点击 ...