APP下载

基于C#的Excel数据导入导出Sql Server技术研究

2012-04-29乔治强

电脑知识与技术 2012年26期
关键词:导入

乔治强

摘要:介绍vs2005环境下,利用C#完成Excel数据读取并导入sql server的思路和方法,同时还介绍了查询结果导出excel的思路和方法,并给出了主要程序的实现步骤和详细的程序代码。

关键词: c#;sql server;EXCEL数据;导入;导出

中图分类号:TP311文献标识码:A文章编号:1009-3044(2012)26-6195-02

Research of the Technology about EXECL Data Import and Export SQL Server Based on C#

QIAO Zhi-qiang

(School of Management, Shaanxi University of Technology,Hanzhong 723200,China)

Abstract:The ideas and methods of Reading Excel data and Import Sql Server with using the C# is studided by visual Stu? dio2005,but also the ideas of saving query results into Excel file is studided, and gives the main program implementation steps and detailed code.

Key words:C#; sql server;Excel data; import; export

在信息系统的的应用中,常常需要读取各种excel文件并处理后存入数据库中,此外大量的查询结果需要导出为excel文件。在一些文献中,介绍了将excel转化为xml文件再进行导入,还有的文献介绍用自动化的方法启动excel进程逐行读取,但此类方法操作复杂或者运行缓慢。此类方法在应用中效果不是很理想,此外还有一种方式是将excel当做数据库来读取,但常常遇到一些不规范的excel文件,下面详细讲述这一方法及应对不规范excel文件的方法。

1.1 Excel导入sql server

1.1.1实现方法

Excel文件可以认为是数据库,excel工作表名称加"$"可以看作是数据库中的表名,通过微软microsoft.jet.oledb连接excel数据库,通过sql语句读取数据。Excel的列可以看作是数据表的列,列名为”F”+序号+”$”,序号即列的顺序号(1…n)。对于合并的单元格,数据算作是被合并前的最左、最上侧的数据。

数据文件的读取

首先,生成数据库联接对象OleDbConnection,new OleDbConnection(@"Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + excel文件名+ ";Extended Properties=Excel 8.0;HDR=Yes;IMEX=1");

注意:HDR=Yes表示电子表格第一行是标题,不当数据处理。若HDR=NO则表示第一行是数据。通常要求客户将第一行置为标题以方便程序处理。

其次,适用sql语言读取数据表,语句的形式通常为“select字段名1,字段名2,……,字段名n from“+excel工作表名+”$”。最后,连接sql server,并循环将数据插入sql server中。

1.1.2存在问题及解决方法

在实际应用中,客户提供的excel文件常是不规范的,包括列顺序不规范,列名称不规范。在实际应用中,常常出现多行表头,用户在表头中存放标题等信息。如果忽视这些问题,在数据读取过程中可能引发错误造成程序死机,造成软件容错性能差。此外,对于不规范的数字输入应采取转换(比如全角数字)和提示。

对于列标题的读取,分两种情况:单表头,即第一行是列2标题,第二行及以下都是数据;多表头,客户往往喜欢在excel表前面

Excel数据导入sql server数据库及查询结果导出excel文件是管理信息系统常用的功能。本文基于c# .NET,实现了sql server与Excel表格的数据批量导入导出,该方法在一些管理系统中得到了应用,实践证明该方法切实可行。

[1]李志云. C#对SQL Server中的数据导入导出[J].电脑编程技巧与维护,2009(17):43-46.

[2]陈瑾.在C#中实现SQL server和Excel之间的数据传输[J].苏州市职业大学学报,2010,21(2):41-45.

[3]陈瑾.在C#中实现SQL server和Excel之间的数据传输[J].苏州市职业大学学报,2010,21(2):41-45.

[4]余秋明.基于C#实现SQL Server和Oracle数据库间数据迁移[J].电脑知识与技术,2009,5(2):7842-7844.

[5]华国栋.基于ADO.NET的数据库访问及其性能优化[J].电脑知识与技术,2004(6):215-218.

猜你喜欢

导入
新课改下构建高效课堂的研究
联系式教学法在历史与社会课教学中的运用