caizi.net
专注.net技术,开发随笔记录,共同进步!
博客园
首页
社区
新随笔
联系
订阅
管理
随笔-5 评论-44 文章-6 trackbacks-3
关于asp.net导出Excel
近日在csdn论坛上找到了这段代码,可以像asp一样把页面导出到excel,这样就可以导出一些比较复杂的excel页面,而不用模板之类的复杂方式了!
public
void
OutPutExcel()
{
//
定义文档类型、字符编码
Response.Clear();
Response.Buffer
=
true
;
Response.Charset
=
"
GB2312
"
;
//
下面这行很重要, attachment 参数表示作为附件下载,您可以改成 online在线打开
//
filename=FileFlow.xls 指定输出文件的名称,注意其扩展名和指定文件类型相符,可以为:.doc .xls .txt .htm
Response.AppendHeader(
"
Content-Disposition
"
,
"
attachment;filename=FileFlow.xls
"
);
Response.ContentEncoding
=
System.Text.Encoding.GetEncoding(
"
GB2312
"
);
//
Response.ContentType指定文件类型 可以为application/ms-excel、application/ms-word、application/ms-txt、application/ms-html 或其他浏览器可直接支持文档
Response.ContentType
=
"
application/ms-excel
"
;
this
.EnableViewState
=
false
;
//
定义一个输入流
System.IO.StringWriter oStringWriter
=
new
System.IO.StringWriter();
System.Web.UI.HtmlTextWriter oHtmlTextWriter
=
new
System.Web.UI.HtmlTextWriter(oStringWriter);
this
.RenderControl(oHtmlTextWriter);
//
this 表示输出本页,你也可以绑定datagrid,或其他支持obj.RenderControl()属性的控件
Response.Write(oStringWriter.ToString());
Response.End();
}
在page_load里边调用就可以把asp.net页面输出到excel。
posted on 2005-05-11 09:33
caizi
阅读(11323)
评论(12)
编辑
收藏
网摘
评论:
685607
#1楼
2005-05-11 10:31 |
Eddie
这样可能不是很好。是不是会把网页上面的其他的一些组件都导出到excel里面了。
回复
引用
#2楼
2005-05-11 11:08 |
木野狐
用 asp.net DataGrid 的 RenderControl 方法导出我做过一个简单的 wrapper. 仅供参考:
http://www.cnblogs.com/rchen/articles/100649.html
">
http://www.cnblogs.com/rchen/articles/100649.html
回复
引用
查看
#3楼
2005-05-11 14:59 |
湘南和也
这个方法在asp的时代就已经有了,就是通过改变httpheader来实现。它有它的局限性,excel的精华无法用到,比如公式之类的。生成的样式也不是太符合excel。
回复
引用
查看
#4楼
2005-05-11 23:40 |
东方蜘蛛
有没有生成.MDB的,不是那种导入到现在有的.MDB中的,是自动生成的
有吗,您有没有做过
回复
引用
查看
#5楼
2005-05-12 09:17 |
吹雪
这种也只是处理比较简单的Excel,如果用户要的报表和DataGrid的显示效果不一样怎么办,还是得用模板
回复
引用
查看
#6楼
2005-05-25 16:03 |
大猩猩
那么,有谁知道该怎么正确的导入到Excel吗?
回复
引用
#7楼
2005-09-02 12:47 |
sang[未注册用户]
上面的方法可以用,不需要的控件可以隐藏掉,但是页面中有图片的话就出现问题了。
回复
引用
#8楼
2005-09-11 12:43 |
lin[未注册用户]
而且,如果是datagrid导出的话,数据行数超过屏幕宽度的话(产生滚动条),导出来的excel文件就打不开!这是为什么?
回复
引用
#9楼
2005-11-10 16:31 |
tieli[未注册用户]
sql语句加上where子句就不停地下载下载该网页,一直打不开EXCEL,这是为什么呢?困扰了很久。
回复
引用
#10楼
2006-07-11 13:09 |
暗暗[未注册用户]
如何调用啊
我是新手
回复
引用
#11楼
2007-01-29 13:55 |
guest[未注册用户]
可以导出,不过会乱码!
大家用记事本打开导出的文件,就会发现它里面全是HTML标记,不是真正的excel
回复
引用
#12楼
2007-03-23 18:18 |
菜鸟[未注册用户]
请你们把那个头文件写出来!
回复
引用
刷新评论列表
刷新页面
返回页首
发表评论
昵称:
[登录]
[注册]
主页:
邮箱:
(仅博主可见)
验证码:
看不清,换一个
评论内容:
登录
注册
[使用Ctrl+Enter键快速提交评论]
0
152908
链接:
切换模板
导航:
网站首页
社区
新闻
博问
闪存
网摘
招聘
找找看
Google搜索
China-pub 计算机图书网上专卖店!6.5万品种 2-8折!
China-Pub 计算机绝版图书按需印刷服务
相关文章:
最新IT新闻:
Google Voice 上手
Google号召社区力量为互联网加速
Twitter无处不在 魔兽世界Twitter发送器插件发布
Firefox 3.5匆忙推出漏洞多 Mozilla本月将更新
预测:Twitter最可能收购的十家公司
相关链接:
21世纪什么最贵?——人才!
QQ:
5555196
E-mail:
caiqh@hi.emedchina.net
与我联系
发短消息
搜索
常用链接
我的随笔
我的空间
我的短信
我的评论
更多链接
我的参与
我的新闻
最新评论
我的标签
留言簿
给我留言
查看留言
随笔档案
2005年5月 (1)
2005年1月 (3)
2004年12月 (1)
文章分类
asp.net(4)
c#(2)
文章档案
2007年7月 (1)
2007年1月 (1)
2005年1月 (4)
收藏夹
.NET PetShop(6)
.text(4)
asp.net(45)
c#(17)
CnForum(1)
工具(7)
开源代码(6)
设计模式(7)
数据库(4)
.NET开源项目(.TEXT)
有关enterprise library
.NET开源项目(CnForums )
cnForum支持论坛
asp.net(E文)
asp.net(中文)
Blog站点
博客堂
个人Blog
.text学习相关个人blog
Aierong .NET世界
LoveCherry
宝玉大哥的blog
设计模块blog
设计模式
开发论坛
CSDN开发论坛
最新评论
1. re: [ASP.net]Loading制作
你好.我这里下载不了啊,那个链接失效了吧...
能给我发一份吗?先谢谢了~
atlantic724@gmail.com
--JeHowSing
2. re: 关于asp.net导出Excel[未登录]
请你们把那个头文件写出来!
--菜鸟
3. re: 在嵌套的repeater中加ItemDataBound事件
TO:暗暗 ItemDataBound 事件的绑定语句 _subRepeater.ItemDataBound += new System.Web.UI.WebControls.RepeaterIte...
--ready
4. re: 在cs文件加入版本信息
大哥具体是哪个选项啊!我怎么没找到!!
--SPOTOO
5. re: 关于asp.net导出Excel
可以导出,不过会乱码!
大家用记事本打开导出的文件,就会发现它里面全是HTML标记,不是真正的excel
--guest
阅读排行榜
1. 关于asp.net导出Excel(11323)
2. 在cs文件加入版本信息(3314)
3. 在嵌套的repeater中加ItemDataBound事件(1458)
4. ASP.NET 中 .NET Data Provider for Oracle 的连接漏洞(1149)
5. 关于昨天说的“在*.CS文件中加入版本跟踪信息”问题(733)
评论排行榜
1. 在cs文件加入版本信息(19)
2. 关于asp.net导出Excel(12)
3. 在嵌套的repeater中加ItemDataBound事件(3)
4. 关于昨天说的“在*.CS文件中加入版本跟踪信息”问题(0)
5. ASP.NET 中 .NET Data Provider for Oracle 的连接漏洞(0)