.net 流氓
天下无难事,有志者成之;天下无易事,有恒者得之。

有一客户需求:

1、要从SQL Server数据库导出并生成Excel ;

2、用户下载对应的Excel并填写上传再导入到SQL server。

费了将近六个小时,故一定要把过程写下来,希望看到此文的朋友少走些不必要的弯路。

首先,想到的是直接导出到客户端,代码如下:

DataSetToExcel

这样生成是生成了! 客户也可以用Excel直接打开并编辑,问题来了! 上传时出错,仔细看看生成的Excel.xls,

用记事本打开,内容大致如下:

Code

 原来,就是纯粹的html格式,披了件Excel的外衣。这样用户传上来的文件当然不是标准的Excel格式了!

于是, 想到直接生成xml格式的Excel文档,方法如下 :

ExportToExcel

可惜, 生成的倒是XML格式了,但还是上传格式不正确,考虑到客户端可能是Excel2007/2003-97等等,决定放弃保存Excel到客户端的方式。

 第三种尝试方案:用cvs保存,将第一种方法改为:

ExportToCVS

 生成格式大致如下:

CVS格式

导入到SQL Server时有多种方法:

给出简要代码:

GetDataFromCSV

 也有人给出方案,直接从cvs中读取

GetDataSetFromCSV

 尝试失败!!

 Code Project 上有篇文章,

A Fast CSV Reader

也可以试试。

 虽然也可以凑合用, 但总觉得CVS出错的可能性更大。

 到此,决定放弃客户端生成的方式,请看下篇

posted on 2011-08-10 11:57  .net 流氓  阅读(465)  评论(0编辑  收藏  举报