这是一个常见的问题,但实际上是因为网上基本就没有几个人真正愿意去研究一下,所以能搜到的解决方案不是馊的就是各种代码一大抄。
简单来说这个问题可以有两大类解决方案:
第一类方案是利用OleDbProvider把Excel文件当做数据库来操作。
个人推荐使用这个解决方案,对于导出简单的Excel文件是非常简便的。你只需要:
1、创建一个只包含表头的Excel文件作为模板
2、在服务器上安装这个东西:
Microsoft Access 2010 数据库引擎可再发行程序包是的,只需要这个东西,根本不需要装一个Office。
3、把你的模板复制一份到临时目录,准备写数据。
4、根据你安装的引擎配置好Excel的连接字符串,参考这里:
http://www. connectionstrings.com/a ce-oledb-12-0/5、打开连接,直接把数据写入到Excel文件
6、把写好数据的Excel文件提供下载。
第二类方案即从无到有的创建一个Excel文件出来,可以分为几种:
1、利用Excel的COM组件或者Excel自动化脚本等技术创建。
极其不推荐这个方案,因为这个做法需要在服务器上安装Excel。
2、NPOI
不推荐用这个工具,因为这个工具创建出来的也不是标准的Excel文档,而且代码之烂令人发指。
3、HTML
直接用HTML格式创建Excel文档,然后保存扩展名为xlsx,下载打开的时候,Excel会自动完成格式的转换。
4、csv
缺点是几乎没有任何格式控制选项。
5、MHT
如果需要在Excel文件中嵌入图片或者其他资源,则MHT是一个不错的选择,MHT本质上就是 HTML文件和资源的打包,所以下载后同样需要Excel打开完成文档格式转换。