我通常使用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[];

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

//创建一个Datable对象并命名为order

DataTable dt = new DataTable("order");

//将word表格中的数据导入Datable

DataColumn column;

for (int i = ; i < table.ColumnCount; i++)

{

column = new DataColumn();

column.ColumnName = table.Rows[].Cells[i].Paragraphs[].Text;

dt.Columns.Add(column);

}

DataRow newRow;

for (int i = ; i < table.RowCount; i++)

{

newRow = dt.NewRow();

Row row = table.Rows[i];

for (int j = ; j < table.ColumnCount; j++)

{

newRow[j] = row.Cells[j].Paragraphs[].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();

//获取第一个worksheet

Worksheet sheet = workbook.Worksheets[];

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

//将dataTable中的数据插入到worksheet中,1代表第一行和第一列

sheet.InsertDataTable(dt, true, , );

步骤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[];

            DataTable dt = new DataTable("order");

            DataColumn column;

            for (int i = ; i < table.ColumnCount; i++)

            {

                column = new DataColumn();

                column.ColumnName = table.Rows[].Cells[i].Paragraphs[].Text;

                dt.Columns.Add(column);

            }

            DataRow newRow;

            for (int i = ; i < table.RowCount; i++)

            {

                newRow = dt.NewRow();

                Row row = table.Rows[i];

                for (int j = ; j < table.ColumnCount; j++)

                {

                    newRow[j] = row.Cells[j].Paragraphs[].Text;

                }

                dt.Rows.Add(newRow);

            }

            Workbook workbook = new Workbook();

            workbook.CreateEmptySheets();

            Worksheet sheet = workbook.Worksheets[];

            sheet.InsertDataTable(dt, true, , );

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

        }

    }

}

总结:

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

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

如何使用免费控件将Word表格中的数据导入到Excel中的更多相关文章

  1. 将页面中指定表格的数据导入到Excel中

    function AutoExcel(){   var oXL = new ActiveXObject("Excel.Application"); //创建应该对象   var o ...

  2. Visual Basic 2012 借助DataGridView控件将SQL server2012 数据导入到Excel 2010

    摘  要: SQL Server 2012 数据和Excel 2010之间的连接和数据的传输,本篇文章主要针对的是SQL Server 2012 数据导入到Excel 2010文件中.Excel软件对 ...

  3. Web打印控件Lodop实现表格物流单的打印

    Web打印控件Lodop实现表格物流单的打印 一.lodop打印预览效果图 LODOP.PRINT_SETUP();打印维护效果图 LODOP.PREVIEW();打印预览图 二.写在前面 最近项目用 ...

  4. [Swift通天遁地]二、表格表单-(4)使用系统自带的下拉刷新控件,制作表格的下拉刷新效果

    ★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...

  5. webbrowser控件显示word文档

    参照某网站上的步骤(http://www.kuqin.com/office/20070909/968.html)首先,在Visual Studio中创建一个C#语言的Windows应用程序,然后在左侧 ...

  6. WPF 免费控件库

    https://github.com/Infragistics/InfragisticsThemesForMicrosoftControls 几款WPF免费控件库,不过运行源码时需要下载三个DLL , ...

  7. 【2019V2全新发布】ComponentOne .NET开发控件集,新增.NET Core数据引擎

    ComponentOne .NET开发控件集 2019V2正式发布,除持续完善并加入全新的.NET开发控件外,还针对产品架构稳定性.易用性.与.NET Core平台深度集成.已有控件功能增强等多个方面 ...

  8. 报表控件NCReport教程:集成NCReport到Qt应用程序中

    NCReport是一款轻量级.快速.多平台.简单易用的基于Qt toolkit的C++编写的报表解决方案,目前主要包括报表渲染库和报表设计器GUI应用程序. 但是好多使用NCReport控件的朋友都不 ...

  9. 机房收费系统——在VB中将MSHFlexGrid控件中的数据导出到Excel

    机房收费系统中,好多查询的窗体都包含同一个功能:将数据库中查询到的数据显示在MSHFlexGrid控件中,然后再把MSHFlexGrid控件中的数据导出到Excel表格中. 虽然之前做过学生信息管理系 ...

随机推荐

  1. 取消TableViewCell选中状态的外观变化

    tabelViewcell 使用Xib创建自定义外观的时候,在tableview选中的时候,cell的外观会发生变化,在定义Xib中如下图将选中的外观状态取消掉 也有其他选项,可以选择控制选中的时候的 ...

  2. Mysql 学习笔记

    创建表: create table testtable( id_ bigint not null AUTO_INCREMENT, name varchar(75) null, vmid varchar ...

  3. ThreadLocal对象使用过程中容易陷入的坑

    ThreadLocal对象帮助我们管理线程内的对象,保证对象在线程之间是相互隔离的. 今天碰到的坑是这样的: index01.html页面加载的时候会发送一次a请求,然后点击附件上传的时候会发送上传请 ...

  4. final 140字评论

    按照演讲顺序 1.约跑app         个人感觉约跑现在做的已经很不错了,要是能添加地图就更好了. 2.礼物挑选         给人感觉在一定的时间做到这个程度,很不错很好,讲的声音有点小. ...

  5. http长轮询&短轮询

    http 协议介绍: http 协议是请求/响应范式的, 每一个 http 响应都是由一个对应的 http 请求产生的; http 协议是无状态的, 多个 http 请求之间是没有关系的. http ...

  6. SQL Server 数据变更时间戳(timestamp)在复制中的运用

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 方案(Solution) 方案一(Solution One) 方案二(Solution Two ...

  7. ApexSQLLog可以只读取ldf文件

    ApexSQLLog可以只读取ldf文件 需要数据库在线 本文版权归作者所有,未经作者同意不得转载.

  8. ABP理论学习之MVC视图

    返回总目录 本篇目录 介绍 AbpWebViewPage基类 介绍 ABP通过Abp.Web.Mvc Nuget包集成了MVC视图.因此你可以像常规那样创建MVC视图. AbpWebViewPage基 ...

  9. Hadoop学习笔记—1.基本介绍与环境配置

    一.Hadoop的发展历史 说到Hadoop的起源,不得不说到一个传奇的IT公司—全球IT技术的引领者Google.Google(自称)为云计算概念的提出者,在自身多年的搜索引擎业务中构建了突破性的G ...

  10. 备忘录:hadoop技术一点积累

    1.hbase的rowkey是按字典排序的,我看有的资料建议rowkey设计不应该是自增的,应该和这个字典排序相关吧 2.hbase的数据存储是按照region来的,region的设计前段时间在坐飞机 ...