从http://blog.bossma.cn/csharp/csharp_export_excel_summary/上发现了此文章,写得不错,而且都有例子,现仅转总结内容:
1、构造Excel的方法
(1)csv结构
遍历数据,构造一个csv文件,然后可以用Excel打开。
csv结构:
用英文逗号分割列
用换行符分割行
(2)制表符或者html table
遍历数据,用制表符分割数据到不同的单元,然后可以用Excel打开。
制表符结构:
\t 分割列
\n 分割行
html table结构:
<table>
<tr>
<td></td>
</tr>
</table>
(3)PIA或Com组件
通过引用Excel PIA或者Excel Com组件,按照面向对象的编程模式构造Excel。推荐使用Excel PIA。
ASP.NET使用Excel Application组件生成Excel
C#导出Excel后关闭进程(EXCEL.EXE)释放资源的解决方案
使用Office PIA生成Excel并释放资源
使用QueryTable快速填充Worksheet导出Excel
(4)从控件或页面获取
获取控件和页面的内容,如DataGird、GridView等。然后以Excel的ContentType输出到页面。
适用于asp.net。
(5)使用第三方组件
如myxls等开源项目,导出真正的Excel文件,属于托管程序,对于大多数的应用推荐使用,但是仍有一部分功能不支持,如包含图片。
使用myxls导出真正的Excel文件
网上也有其它基于Biff8格式生成Excel的程序,自己可以找找。
2、输出Excel方法
(1)Response到浏览器页面
Response.Write输出字符串
Response.WriteFile输出文件内容
常用设置:
(2)写入到文件
在winform中使用一般要写入Excel文件,使用Com组件或者PIA一般也要先保存到文件。
自带方法保存:使用QueryTable快速填充Worksheet导出Excel
FileStream保存:c#将数据集合导出Excel的方法(使用csv或制表符)
3、资源释放
如果使用Excel PIA或者Com组件,资源释放是个重要的事情。
第一个方法是我写的一个通过杀死进进程释放非托管资源的方法;第二个方法是参照微软提供的实例。
C#导出Excel后关闭进程(EXCEL.EXE)释放资源的解决方案