Asp.net导入导出Excel总结

      到目前为止,先后共写了四篇关于导入导出Excel的文章,可谓真是一个脚步一个脚印啊,最后来总结一下
一共使用过四种方法,现在评论下各个方法的优缺点:

1.使用mssql xp_cmdshell 命令导出excel
优点:方便,直接,一条简单的sql语句搞定,详情参考博客另一篇文章 xp_cmdshell 导出excel
缺点:①必须在mssql外围应用配置器中启用xp_cmdshell (当然是用sql语句也是可以开启的)
        ②导出的文件发送到客户端比较麻烦,需要先缓存到服务器然后再读取缓存下载到客户端(好像是这样的,不太记得了)
        ③导出的不是真正的excel文件,导入的时候在mssql查询分析器中可以读取,使用ado.net可以读取,oledb无法读取

2.使用邹建的存储过程导出excel
优点:方便,直接,而且存储过程是现成的只要换换表名即可,最重要的是导出的是真正的excel详情参考博客另一篇文章 sql 导出/入Excel
缺点:①同第一个方法第二个缺点一样
        ②只支持2000版本的excel,2003至2007的不支持(要是sql比较强的话就自己写了

3.使用response直接输出的方式
优点:方便,而且不存在兼容性问题,这种方式可以直接提供客户端下载,详情参考博客另一篇文章 DataTable导入导出Excel
缺点:①同第一个方法第三个缺点一样
        ②要重写VerifyRenderingInServerForm(Control control) { }

4.使用com组件导出excel
优点:导出为真正excel ,不必重新VerifyRenderingInServerForm,详情参考博客另一篇文章 COM组建导出Excel
缺点:①存在兼容性问题,2003的excel对应11.0版本com组件,07对应12.0
        ②同第一个方法第二个缺点        
        ③代码复杂,比较难懂
        ④占用内存较大,而且进程不易杀死

总结:以上几个方法,总的来说都是缺点大于优点(-_-! 个人意见),经过好几个晚上的研究,最终使用第四种方式导入导出了excel,但是效率比较低,望高人们能给出更好的解决方案。。。


你可能感兴趣的:(asp.net)