导出EXCEL的怪问题

九章落地 2006-12-28 10:46:45
我有一页面,通过下面的方式把<div></div>之间的数据导出到EXCEL,如果是执行單一页面,没有问题。但我的整个站点是用框架做的,把该页面以框架的方式打开,再导出EXCEL时,有两种情况:如果我选择弹出对话框里的“打开”,我的整个IE窗口都会关掉;如果选择“保存”,IE也会关掉,但EXCEL能下载回本地。
希望得到各位高手的帮助!!!!
源码如下:

//导出函数
private void GenerateByHtmlString(string FileType, string FileName)
{
Response.Charset = "utf-8";
//Response.ContentEncoding = System.Text.Encoding.GetEncoding("utf-8");
Response.AppendHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode(FileName));
Response.ContentType = FileType;
this.EnableViewState = false;
StringWriter tw = new StringWriter();
HtmlTextWriter hw = new HtmlTextWriter(tw);
divtest.RenderControl(hw);
Response.Write(tw.ToString());
Response.End();
}
//按钮里调用:
protected void btnOutExcel_Click(object sender, EventArgs e)
{
GenerateByHtmlString("application/ms-excel", "ResApply.xls");

}
...全文
268 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
wengnet 2006-12-29
  • 打赏
  • 举报
回复
试试在
HEAD里面加<base='_blank'>
九章落地 2006-12-29
  • 打赏
  • 举报
回复
期待更好的答案。
如果有其他方法實現也行。
望高手相助!
孟子E章 2006-12-28
  • 打赏
  • 举报
回复
框架是多个页面的,你要指定保存哪个。
最好window.open("saveExcel.aspx")
msdn_vipuser 2006-12-28
  • 打赏
  • 举报
回复
代码 应该没什么问题吧
是不是别的原因
  • 打赏
  • 举报
回复
在  Response.End(); 之前弹个消息框,这个时候IE肯定还没关闭
  • 打赏
  • 举报
回复
把 Response.End(); 去掉
Zine_Alone 2006-12-28
  • 打赏
  • 举报
回复
帮顶.
九章落地 2006-12-28
  • 打赏
  • 举报
回复
在框架里,点击弹出下载窗口的任何一个按钮(打开,保存,取消)都会关掉IE。。。
这是什么造成的啊?!
九章落地 2006-12-28
  • 打赏
  • 举报
回复
TO:yyy431706(观兰)

用你的方式,倒不会关IE,但在框架里,我只看到EXCEL单元格,不出现EXCEL菜单。
我的目的是想对数据进行打印或保存啊!
yyy431706 2006-12-28
  • 打赏
  • 举报
回复
我也碰到过这种奇怪的问题,在网上找资料解决了

Response.AppendHeader("Content-Disposition", "attachment;filename=" + Server.UrlEncode(FileName));


把上面这句改成下面这样的

response.AddHeader("Content-Disposition","inline;filename="+System.Web.HttpUtility.UrlEncode(strFileName,System.Text.Encoding.GetEncoding("UTF-8")));//下载对话框中的文件名


注意其中的inline,就是这个东西在起作用
九章落地 2006-12-28
  • 打赏
  • 举报
回复
TO:theforever(碧海情天)
把 Response.End(); 去掉,也不能解决问题。对话框是有弹出来,但你一点击,IE就关了。


TO:net_lover(【孟子E章】)
其实我的代码是参考老哥你的,自己也感觉window.open可行,但我的页面内容比较多,我只想输出一部分即可,不想再弹出一个窗口。不知还有没有其他方法可解决???
望指教!

110,534

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧