ASP.NET中导出excel/word等类型文件的简单方法

 
ASP.NET中导出excel/word等类型文件的简单方法
在做 ASP.NET 项目时 , 会经常遇到要导出文件的问题 , 如将 DataGrid 中的数据导出到 excel 文件等 , 经常使用的是 Office 中的 OWC 组件 , 这个组件提供的功能很强大 , 在一般的项目中都可以满足当前的需要 . 但是这个功能强大的组件使用起来却不是很方便 , 不但有版本的问题 , 而且代码量也相对比较大 . 如果要利用 Respone 对象和相关的 IO, 也可以实现到处 excel/word 等文件 , 而且使用方便 .
代码如下 :
System.IO.StringWriter SW = new System.IO.StringWriter();
System.Web.UI.HtmlTextWriter HTW=new System.Web.UI.HtmlTextWriter(SW);
Page.RenderControl(HTW);
//Page
为要导出的对象 , 当前是 Page, 如果是 DataGrid,DataList 等都可以
Response.Buffer=true;
Response.Clear();
Response.ClearContent();
Response.ClearHeaders();
Response.ContentType = "Response.ContentType";
//Response.ContentType
是输出流的 HTTP MIME 类型
//Response.ContentType     --- word
文件
//application/vnd.ms-excel --- excel
文件
//...
Response.Charset="utf-8";
Response.ContentEncoding=System.Text.Encoding.GetEncoding("utf-8");
Response.AddHeader("Content-Disposition", "attachment;filename=XXX.doc");
//attachment ---
作为附件下载
//inline ---
在线打开
//filename
如过是中文 , 则可以用 HttpUtility.UrlEncode(fileName,System.Text.Encoding.UTF8)
//
进行进行编码 , 以解决文件名乱码的问题
Response.Write(SW.ToString());
Response.Flush();
Response.Close();
这样即可以将当前的页面导出成一个 Word 文件 . 同样原理要将 DataGrid,DataList 等中的内容导出为 Word Excel 等类型的文件 , 那么只需要稍做修改代码即可 .
  OK , 这样比用 OWC 组件方便多了 , 但也有个小问题 , 那就是导出的文件从文件格式上来说不是 " 真正 "Word Excel 类型的文件 , 但用 Office 照样能打开 , 没什么区别 , 用户是看不出来的 , 也不会去理会这样的事情 ~~~
 
 
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值