c#读取word中表格数据

 我来答
Office文档开发
2021-03-29 · 专注文档开发的码字君
Office文档开发
采纳数:47 获赞数:66

向TA提问 私信TA
展开全部

表格中可以插入文本数据以及图片,读取表格时需要通过不同方法来读取里面的内容。

基本思路:加载word文档,获取section节,获取表格,遍历表格中的单元格,获取文本数据写入txt文档,获取图片保存到指定路径。

具体可参考如下代码:

1. 读取表格中的文本数据

using Spire.Doc;

using Spire.Doc.Documents;

using System.IO;

using System.Text;


namespace GetTableData

{

    class Program

    {

        static void Main(string[] args)

        {

            //载入Word文档

            Document document = new Document("test.docx");


            Section section = document.Sections[0];


            //获取文本框中第一个表格

            Table table = section.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.ToString());

                    }

                }

            }


            File.WriteAllText("tabledata.txt" , sb.ToString());

            System.Diagnostics.Process.Start("tabledata.txt");

        }

    }

}

文本读取结果:

2. 读取表格中的图片

using System;

using Spire.Doc;

using Spire.Doc.Documents;

using Spire.Doc.Fields;

 

namespace Extract_Images_From_Tables_in_Word

{

    class Program

    {

        static void Main(string[] args)

        {

            //创建Document实例

            Document doc = new Document();

            //加载Word文档

            doc.LoadFromFile("sample.docx");

 

            //获取文档中第一个节

            Section section = doc.Sections[0];

 

            //调用ExtractImagesFromTables方法,提取表格中的图片

            ExtractImagesFromTables(section);

 

            //关闭

            doc.Close();

        }

 

        //创建静态方法ExtractImagesFromTables,参数为Section对象

        static void ExtractImagesFromTables(Section section)

        {

            int index = 0;

            String imageName = null;

            //遍历section中的表格,提取表格中的图片并保存到本地

            foreach (Table table in section.Tables)

            {

                for (int i = 0; i < table.Rows.Count; i++)

                {

                    for (int j = 0; j < table.Rows[i].Cells.Count; j++)

                    {

                        foreach (Paragraph para in table[i, j].Paragraphs)

                        {

                            foreach (DocumentObject obj in para.ChildObjects)

                            {

                                if (obj is DocPicture)

                                {

                                    imageName = String.Format(@"images\TableImage-{0}.png", index);

                                    (obj as DocPicture).Image.Save(imageName, System.Drawing.Imaging.ImageFormat.Png);

                                    index++;

                                }

                            }

                        }

                    }

                }

            }

        }

 

    }

}

执行程序后,在vs项目文件夹bin下查看图片读取结果。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式