有一客户需求:
1、要从SQL Server数据库导出并生成Excel ;
2、用户下载对应的Excel并填写上传再导入到SQL server。
费了将近六个小时,故一定要把过程写下来,希望看到此文的朋友少走些不必要的弯路。
首先,想到的是直接导出到客户端,代码如下:
这样生成是生成了! 客户也可以用Excel直接打开并编辑,问题来了! 上传时出错,仔细看看生成的Excel.xls,
用记事本打开,内容大致如下:
原来,就是纯粹的html格式,披了件Excel的外衣。这样用户传上来的文件当然不是标准的Excel格式了!
于是, 想到直接生成xml格式的Excel文档,方法如下 :
可惜, 生成的倒是XML格式了,但还是上传格式不正确,考虑到客户端可能是Excel2007/2003-97等等,决定放弃保存Excel到客户端的方式。
第三种尝试方案:用cvs保存,将第一种方法改为:
生成格式大致如下:
导入到SQL Server时有多种方法:
给出简要代码:
也有人给出方案,直接从cvs中读取
尝试失败!!
Code Project 上有篇文章,
A Fast CSV Reader
也可以试试。
虽然也可以凑合用, 但总觉得CVS出错的可能性更大。
到此,决定放弃客户端生成的方式,请看下篇
DataSet导出到Excel比较完整的解决方案(二)--服务器端生成文件(downmoon)