zoukankan      html  css  js  c++  java
  • 如何使用免费控件将Word表格中的数据导入到Excel中

    我通常使用MS Excel来存储和处理大量数据,但有时候经常会碰到一个问题—我需要的数据存储在word表格中,而不是在Excel中,这样处理起来非常麻烦,尤其是在数据比较庞大的时候,

    这时我迫切地需要将word表格中的数据导入到Excel中。相信大家也碰到过同样的问题,下面我就给大家分享一下在C#中如何使用免费控件来实现这一功能。这里,我使用了两个免费API,

    DocX和Spire.Xls。

    有需要的朋友可以下载使用。下载地址:

    DocX:codeplex官网

    Spire.Xls: E-iceblue官网

    注意:在创建项目后,需要添加这两个控件的相关.dll文件作为项目的引用。

                           

    以下是详细步骤:

    首先我使用DocX API 来获取word表格中的数据,然后将数据导入System.Data.DataTable对象中

    代码片段:

    步骤1:加载word文档;

    DocX document = DocX.Load("E:\Program Files\data.docx");

    步骤2从文档中获取表格。作为示例,这里我仅获取了第一个表格;

    //获取文档的第一个表格
    
    Table table = document.Tables[0];

    步骤3创建一个DataTable对象,并导入word表格中的数据;

    //创建一个Datable对象并命名为order
    
    DataTable dt = new DataTable("order");
    
    //将word表格中的数据导入Datable
    
    DataColumn column;
    
    for (int i = 0; i < table.ColumnCount; i++)
    
    {
    
    column = new DataColumn();
    
    column.ColumnName = table.Rows[0].Cells[i].Paragraphs[0].Text;
    
    dt.Columns.Add(column);
    
    }
    
    DataRow newRow;
    
    for (int i = 1; i < table.RowCount; i++)
    
    {
    
    newRow = dt.NewRow();
    
    Row row = table.Rows[i];
    
    for (int j = 0; j < table.ColumnCount; j++)
    
    {
    
    newRow[j] = row.Cells[j].Paragraphs[0].Text;
    
    }
    
    dt.Rows.Add(newRow);
    
    }


    效果图如下:

    原word文档:

     

    Datable:

     

    其次,我使用了Spire.Xls API来创建一个Workbook对象,并将dataTable插入到Workbook中,然后将文件保存为.xlsx文件。

    代码片段:

    步骤1创建一个Workbook实例并新建一个空的worksheet;

    //创建一个Workbook示例
    
    Workbook workbook = new Workbook();
    
    //新建一个空的worksheet
    
    workbook.CreateEmptySheets(1);
    
    //获取第一个worksheet
    
    Worksheet sheet = workbook.Worksheets[0];

    步骤2将dataTable中的数据导入到worksheet;

    //将dataTable中的数据插入到worksheet中,1代表第一行和第一列
    
    sheet.InsertDataTable(dt, true, 1, 1);

    步骤3 保存到一个excel文件中;

    workbook.SaveToFile("Data.xlsx",ExcelVersion.Version2007);


    生成的excel文件效果图:

     

    全部代码:

    using System.Data;
    
    using Spire.Xls;
    
    using Novacode; //Docx
    
    namespace word_table_to_excel
    
    {
    
        class Program
    
        {
    
            static void Main(string[] args)
    
            {
    
                DocX document = DocX.Load("E:\Program Files\data.docx");
    
                Table table = document.Tables[0];
    
                DataTable dt = new DataTable("order");
    
                DataColumn column;
    
                for (int i = 0; i < table.ColumnCount; i++)
    
                {
    
                    column = new DataColumn();
    
                    column.ColumnName = table.Rows[0].Cells[i].Paragraphs[0].Text;
    
                    dt.Columns.Add(column);
    
                }
    
                DataRow newRow;
    
                for (int i = 1; i < table.RowCount; i++)
    
                {
    
                    newRow = dt.NewRow();
    
                    Row row = table.Rows[i];
    
                    for (int j = 0; j < table.ColumnCount; j++)
    
                    {
    
                        newRow[j] = row.Cells[j].Paragraphs[0].Text;
    
                    }
    
                    dt.Rows.Add(newRow);
    
                }
    
                Workbook workbook = new Workbook();
    
                workbook.CreateEmptySheets(1);
    
                Worksheet sheet = workbook.Worksheets[0];
    
                sheet.InsertDataTable(dt, true, 1, 1);
    
                workbook.SaveToFile("Data.xlsx", ExcelVersion.Version2007);
    
            }
    
        }
    
    }


    总结:

    这是两款独立的免费软件,使用时不需要安装MS Office。使我节省了不少的时间。如果你有好的意见或建议,希望可以在这里相互分享。

    希望本文能给您带来一定的帮助。

  • 相关阅读:
    数据持久化的基础知识
    svn常用命令
    关于SVN 目录结构
    linux查看CPU信息
    一个服务器上启动两台tomcat
    centos6.0 配置SVN
    mysql插入表情
    MAC 安装 PIL
    安装freetype
    Hadoop基本文件命令
  • 原文地址:https://www.cnblogs.com/Yesi/p/4994086.html
Copyright © 2011-2022 走看看