- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
基于C#实现SQL Server与Excel间数据的导入导出.doc
基于C#实现SQL Server与Excel间数据的导入导出 【摘 要】在多数信息系统的使用过程中常涉及到数据库内数据的导入与导出问题,如何实现SQL Server与Excel间数据的导入导出,修正数据在导出过程中出现的格式错误是本文所要解决的主要问题。 【关键词】C#;SQL Server;Excel;数据导入导出 1 数据库数据的导入与导出 一般信息系统运行初始,首先需要初始化一些基础数据,如数据字典,然后再录入信息系统需要处理的数据。如果人工初始这些数据,效率低,易出错,这时我们可以提前准备好初始化数据,一次性导入数据库中,此过程称为向数据库导入数据。 当信息系统运行一段时间后,需要将其中一些数据导出作为备份,或将导出数据进行格式处理后生成相应报表,一般将数据库数据导出为相关文件,此过程称为由数据库导出数据。 2 数据导出存在问题 当数据库数据导出至Excel文件时,通常有如下几种数据发生变化: ①形如“001”的字符串数据导出至Excel工作表单元格时,变为数值“1”。 ②形如“座机电话号码51”的字符串数据导出至Excel工作表单元格时,变为数值“2.20203E+17”。 ③形如“2012-1-2”的日期数据导出至Excel工作表单元格时,变为“2012/1/2”,日期格式发生变化。 发生以上数据变化的原因是Excel工作表单元格默认格式为“常规”引起的。在下面的示例中将给出解决方法。 3 示例实现 本示例实现客户表(client)数据的导入与导出。程序运行界面如图1所示,客户表各字段类型如图2所示,准备导入数据的Excel工作表数据如图3所示,导入数据后客户表如图4所示,由客户表导出数据至Excel工作表显示如图3所示。 说明:本文仅实现数据导入导出过程中涉及的重要步骤及方法。 实现步骤: (1)添加引用 为项目添加.NET引用:Microsoft.Office.Interop.Excel,版本11。 (2)导入数据 ①获取Excel工作表数据,生成数据集 方法说明,参数“fileName”表示导入数据所在Excel文件的路径及文件名;参数“sheetName”表示导入数据所在工作表的名称,生成结果以“DataSet”类型返回,代码如下: ②将数据集内数据导入至数据库相关表 解决办法是从数据集读取一条记录就插入至数据库客户表一条,直至数据集内所有记录插入完毕,为使数据成功导入数据表,可以在代码中加入了事务处理,即应用“SqlTransaction”类实现事务处理。 (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文件,代码如下: mySheet.Columns.EntireColumn.AutoFit(); myExcel.DisplayAlerts false; myExcel.AlertBeforeOverwriting false; //“fileName”表示导出数据所在Excel文件的路径及文件名 myExcel.ActiveWorkbook.SaveCopyAs(fileName); myExcel.Workbooks.Close(); myExcel.Quit(); 4 总结 使用本文介绍方法实现SQL Server与Excel间数据的导入导出的前提是应用程序所在平台需要安装Office办公软件,特别是需要安装Excel软件。另外建议读者在实现数据导入导出时,可以考虑使用低版本的Office软件,
文档评论(0)