波斯马BOSSMA Information Technology

C#导出Excel技术总结

发布时间:2010年11月4日 / 分类:DOTNET / 14,084 次浏览 / 评论

excel在日常办公生活中应用广泛,使用C#导出Excel的方法有很多种,网上介绍的资料也很多。这篇文章属于个人多年来导出Excel的经验总结,包括各种生成excel的方法,输出excel,释放资源以及使用开源项目等。

1、构造Excel的方法

(1)csv结构
遍历数据,构造一个csv文件,然后可以用Excel打开。

csv结构:
用英文逗号分割列
用换行符分割行

c#将数据集合导出Excel的方法(使用csv或制表符)

(2)制表符或者html table
遍历数据,用制表符分割数据到不同的单元,然后可以用Excel打开。

制表符结构:
\t 分割列
\n 分割行

html table结构:
<table>
<tr>
<td></td>
</tr>
</table>

c#将数据集合导出Excel的方法(使用csv或制表符)

(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。

asp.net将控件或页面数据导出到Excel

(5)使用第三方组件
如myxls等开源项目,导出真正的Excel文件,属于托管程序,对于大多数的应用推荐使用,但是仍有一部分功能不支持,如包含图片。
使用myxls导出真正的Excel文件

网上也有其它基于Biff8格式生成Excel的程序,自己可以找找。

2、输出Excel方法

(1)Response到浏览器页面
Response.Write输出字符串
Response.WriteFile输出文件内容

常用设置:

Response.ContentType = "application/vnd.ms-Excel";
Response.ContentEncoding = System.Text.Encoding.UTF8;
Response.Charset = "UTF-8";
Response.AppendHeader("content-disposition", "attachment;filename=" + strFileName);

asp.net将控件或页面数据导出到Excel

(2)写入到文件
在winform中使用一般要写入Excel文件,使用Com组件或者PIA一般也要先保存到文件。

自带方法保存:使用QueryTable快速填充Worksheet导出Excel
FileStream保存:c#将数据集合导出Excel的方法(使用csv或制表符)

3、资源释放

如果使用Excel PIA或者Com组件,资源释放是个重要的事情。
第一个方法是我写的一个通过杀死进进程释放非托管资源的方法;第二个方法是参照微软提供的实例。
C#导出Excel后关闭进程(EXCEL.EXE)释放资源的解决方案
使用Office PIA生成Excel并释放资源

本博客所有文章如无特别注明均为原创。
复制或转载请以超链接形式注明转自波斯马,原文地址《C#导出Excel技术总结

关键字:

建议订阅本站,及时阅读最新文章!
【上一篇】 【下一篇】

发表评论