基于C#实现SQL Server与Excel间数据的导入导出

2013-11-12 13:11
科技视界 2013年27期
关键词:数据表单元格脑瘫

闫 淼

(吉林电子信息职业技术学院 信息技术学院,吉林 吉林 132021)

1 数据库数据的导入与导出

一般信息系统运行初始,首先需要初始化一些基础数据,如数据字典,然后再录入信息系统需要处理的数据。如果人工初始这些数据,效率低,易出错,这时我们可以提前准备好初始化数据,一次性导入数据库中,此过程称为向数据库导入数据。

当信息系统运行一段时间后,需要将其中一些数据导出作为备份,或将导出数据进行格式处理后生成相应报表,一般将数据库数据导出为相关文件,此过程称为由数据库导出数据。

2 数据导出存在问题

当数据库数据导出至Excel文件时,通常有如下几种数据发生变化:

①形如“001”的字符串数据导出至Excel工作表单元格时,变为数值“1”。

②形如“220203198002210551”的字符串数据导出至Excel工作表单元格时,变为数值“2.20203E+17”。

③形如“2012-1-2”的日期数据导出至Excel工作表单元格时,变为“2012/1/2”,日期格式发生变化。

发生以上数据变化的原因是Excel工作表单元格默认格式为“常规”引起的。在下面的示例中将给出解决方法。

3 示例实现

本示例实现客户表(client)数据的导入与导出。程序运行界面如图1所示,客户表各字段类型如图2所示,准备导入数据的Excel工作表数据如图3所示,导入数据后客户表如图4所示,由客户表导出数据至Excel工作表显示如图3所示。

图1 导入数据后界面

图2 客户表各字段类型

图3 Excel工作表内导入/导出数据

图4 客户表导入数据后

说明:本文仅实现数据导入导出过程中涉及的重要步骤及方法。

实现步骤:

(1)添加引用

为项目添加.NET引用:Microsoft.Office.Interop.Excel,版本11。

(2)导入数据

①获取Excel工作表数据,生成数据集

方法说明,参数“fileName”表示导入数据所在Excel文件的路径及文件名;参数“sheetName”表示导入数据所在工作表的名称,生成结果以“DataSet”类型返回,代码如下:

②将数据集内数据导入至数据库相关表

解决办法是从数据集读取一条记录就插入至数据库客户表一条,直至数据集内所有记录插入完毕,为使数据成功导入数据表,可以在代码中加入了事务处理,即应用“SqlTransaction”类实现事务处理。

1.3.3 脑瘫儿童运动障碍评估 脑瘫儿童粗大运动功能障碍程度评估:使用脑性瘫痪粗大运动功能分类系统(GMFCS)中国版[4],该系统将脑瘫患儿分为4个年龄组:~2岁、~4岁、~6岁、~12岁;每个年龄组根据脑瘫患儿运动功能的表现及受限制程度分为Ⅰ、Ⅱ、Ⅲ、Ⅳ、Ⅴ,5个级别,其中I级运动功能最高,V级运动功能最低。

(3)导出数据

①将导出数据表生成数据集

根据生成数据集包含的字段,通过SQL语句,生成数据集对象。为实现按照指定日期类型导出数据,可对日期类型字段进行格式转换,如对客户表“regDate”字段进行转换,代码如下所示:

string strSql="SELECT code,name,sex,IDCard,CONVERT(varchar(10),regDate,120),rank FROM client";

②根据数据表,生成Excel工作表

实现思路:根据导出数据生成的数据集,从数据集读取一条记录插入至Excel工作表内一条,至到数据集内全部数据插入为止。

ⅰ)添加代码页面引用“using Excel=Microsoft.Office.Interop.Excel;”,以达到简化引用。

ⅱ)创建Excel工作表对象如下代码所示:

关于注释为“A”的代码说明:

a“mySheet.Cells[i+2,j+1]”表示导出的数据是从Excel工作表第2行1列开始添加的,直到数据集中数据导出完毕。

b “"'"+dt.Rows[i][j].ToString()”,其中“dt.Rows[i][j]”表示数据表对象中i行j列的值,“"'"”中“'”的作用是将数据导入Excel工作表单元格时以文本类型处理,这样就不会出现第2节数据导出存在的那些问题了。

ⅴ)生成包含导出数据的Excel文件,代码如下:

4 总结

使用本文介绍方法实现SQL Server与Excel间数据的导入导出的前提是应用程序所在平台需要安装Office办公软件,特别是需要安装Excel软件。另外建议读者在实现数据导入导出时,可以考虑使用低版本的Office软件,如Office2003,因为Office有向后兼容的功能,所以导出的Excel2003文件可以直接在Office2007中打开并编辑。

[1]Watson,等.C# 入门经典[M].齐立波,译.4 版.北京:清华大学出版社,2008.

[2]刘丽霞,等.C#范例开发大全[M].北京:清华大学出版社,2010.

[3]明日科技.C#开发技术大全[M].北京:人民邮电出版社,2011.

猜你喜欢
数据表单元格脑瘫
玩转方格
玩转方格
基于列控工程数据表建立线路拓扑关系的研究
浅谈Excel中常见统计个数函数的用法
脑瘫患儿采用康复护理进行早期干预效果
图表
基于VSL的动态数据表应用研究
二十一个学生娃与脑瘫姐妹俩