如何使用免费控件将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[];
步骤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中的更多相关文章
- 将页面中指定表格的数据导入到Excel中
function AutoExcel(){ var oXL = new ActiveXObject("Excel.Application"); //创建应该对象 var o ...
- Visual Basic 2012 借助DataGridView控件将SQL server2012 数据导入到Excel 2010
摘 要: SQL Server 2012 数据和Excel 2010之间的连接和数据的传输,本篇文章主要针对的是SQL Server 2012 数据导入到Excel 2010文件中.Excel软件对 ...
- Web打印控件Lodop实现表格物流单的打印
Web打印控件Lodop实现表格物流单的打印 一.lodop打印预览效果图 LODOP.PRINT_SETUP();打印维护效果图 LODOP.PREVIEW();打印预览图 二.写在前面 最近项目用 ...
- [Swift通天遁地]二、表格表单-(4)使用系统自带的下拉刷新控件,制作表格的下拉刷新效果
★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★➤微信公众号:山青咏芝(shanqingyongzhi)➤博客园地址:山青咏芝(https://www.cnblogs. ...
- webbrowser控件显示word文档
参照某网站上的步骤(http://www.kuqin.com/office/20070909/968.html)首先,在Visual Studio中创建一个C#语言的Windows应用程序,然后在左侧 ...
- WPF 免费控件库
https://github.com/Infragistics/InfragisticsThemesForMicrosoftControls 几款WPF免费控件库,不过运行源码时需要下载三个DLL , ...
- 【2019V2全新发布】ComponentOne .NET开发控件集,新增.NET Core数据引擎
ComponentOne .NET开发控件集 2019V2正式发布,除持续完善并加入全新的.NET开发控件外,还针对产品架构稳定性.易用性.与.NET Core平台深度集成.已有控件功能增强等多个方面 ...
- 报表控件NCReport教程:集成NCReport到Qt应用程序中
NCReport是一款轻量级.快速.多平台.简单易用的基于Qt toolkit的C++编写的报表解决方案,目前主要包括报表渲染库和报表设计器GUI应用程序. 但是好多使用NCReport控件的朋友都不 ...
- 机房收费系统——在VB中将MSHFlexGrid控件中的数据导出到Excel
机房收费系统中,好多查询的窗体都包含同一个功能:将数据库中查询到的数据显示在MSHFlexGrid控件中,然后再把MSHFlexGrid控件中的数据导出到Excel表格中. 虽然之前做过学生信息管理系 ...
随机推荐
- 取消TableViewCell选中状态的外观变化
tabelViewcell 使用Xib创建自定义外观的时候,在tableview选中的时候,cell的外观会发生变化,在定义Xib中如下图将选中的外观状态取消掉 也有其他选项,可以选择控制选中的时候的 ...
- Mysql 学习笔记
创建表: create table testtable( id_ bigint not null AUTO_INCREMENT, name varchar(75) null, vmid varchar ...
- ThreadLocal对象使用过程中容易陷入的坑
ThreadLocal对象帮助我们管理线程内的对象,保证对象在线程之间是相互隔离的. 今天碰到的坑是这样的: index01.html页面加载的时候会发送一次a请求,然后点击附件上传的时候会发送上传请 ...
- final 140字评论
按照演讲顺序 1.约跑app 个人感觉约跑现在做的已经很不错了,要是能添加地图就更好了. 2.礼物挑选 给人感觉在一定的时间做到这个程度,很不错很好,讲的声音有点小. ...
- http长轮询&短轮询
http 协议介绍: http 协议是请求/响应范式的, 每一个 http 响应都是由一个对应的 http 请求产生的; http 协议是无状态的, 多个 http 请求之间是没有关系的. http ...
- SQL Server 数据变更时间戳(timestamp)在复制中的运用
一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 方案(Solution) 方案一(Solution One) 方案二(Solution Two ...
- ApexSQLLog可以只读取ldf文件
ApexSQLLog可以只读取ldf文件 需要数据库在线 本文版权归作者所有,未经作者同意不得转载.
- ABP理论学习之MVC视图
返回总目录 本篇目录 介绍 AbpWebViewPage基类 介绍 ABP通过Abp.Web.Mvc Nuget包集成了MVC视图.因此你可以像常规那样创建MVC视图. AbpWebViewPage基 ...
- Hadoop学习笔记—1.基本介绍与环境配置
一.Hadoop的发展历史 说到Hadoop的起源,不得不说到一个传奇的IT公司—全球IT技术的引领者Google.Google(自称)为云计算概念的提出者,在自身多年的搜索引擎业务中构建了突破性的G ...
- 备忘录:hadoop技术一点积累
1.hbase的rowkey是按字典排序的,我看有的资料建议rowkey设计不应该是自增的,应该和这个字典排序相关吧 2.hbase的数据存储是按照region来的,region的设计前段时间在坐飞机 ...