C# 读取Word文本框中的文本、图片和表格(附VB.NET代码)
                                                            生活随笔
收集整理的這篇文章主要介紹了
                                C# 读取Word文本框中的文本、图片和表格(附VB.NET代码)
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.                        
                                【概述】
Word中可插入文本框,在文本框中可添加文本、圖片、表格等內(nèi)容。本篇文章通過(guò)C#程序代碼介紹如何來(lái)讀取文本框中的文本、圖片和表格等內(nèi)容。附VB.NET代碼,有需要可作參考。
【程序環(huán)境】
程序中所需必要的程序集文件Spire.Doc.dll,及其他相關(guān)dll文件(見(jiàn)下文)。
用于測(cè)試的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];//創(chuàng)建StringBuilder類(lèi)的對(duì)象StringBuilder sb = new StringBuilder();//遍歷文本框中的對(duì)象,獲取文本foreach (object obj in textbox.Body.ChildObjects){if (obj is Paragraph){String text = ((Paragraph)obj).Text;sb.AppendLine(text);}}//保存寫(xiě)入的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.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)'創(chuàng)建StringBuilder類(lèi)的對(duì)象Dim sb As New StringBuilder()'遍歷文本框中的對(duì)象,獲取文本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'保存寫(xiě)入的txt文檔到指定路徑File.WriteAllText("ExtractedText.txt", sb.ToString())System.Diagnostics.Process.Start("ExtractedText.txt")End SubEnd Class End Namespace文本讀取結(jié)果:
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];//遍歷段落中的所有子對(duì)象for (int j = 0; j < paragraph.ChildObjects.Count; j++){object obj = paragraph.ChildObjects[j];//判定對(duì)象是否為圖片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.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)'遍歷段落中的所有子對(duì)象For j As Integer = 0 To paragraph.ChildObjects.Count - 1Dim obj As Object = paragraph.ChildObjects(j)'判定對(duì)象是否為圖片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 Class End Namespace圖片讀取結(jié)果:
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.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 Class End Namespace表格數(shù)據(jù)讀取結(jié)果:
【總結(jié)】
以上是本文關(guān)于通過(guò)C#程序讀取Word中的文本框的方法。所附VB.NET代碼供參考。
另推薦閱讀《Java 讀取Word文本框中的文本、圖片和表格》
?
(本文完,如需轉(zhuǎn)載,請(qǐng)務(wù)必注明出處!!)
?
總結(jié)
以上是生活随笔為你收集整理的C# 读取Word文本框中的文本、图片和表格(附VB.NET代码)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
 
                            
                        - 上一篇: 耦合是什么?如何做到解耦?
- 下一篇: js之按键控制div移动
