用Asp.net 做导出excel和word,但是在360浏览器3.7版上无法使用,在3.6版上则正常

ice9ying 2011-05-04 09:16:49
在3.7版上,点击导出excel,会弹出框来,但立马消失,然后就没反应了,这怎么解决?在IE上也是好用的

public static void CreateExcel(DataSet ds, string filename, string strType, Page page)
{

//filename文件名
//strType application/ms-word或excel

page.Response.Clear();
page.Response.Buffer = true;
page.Response.Charset = "GB2312";
page.Response.AppendHeader("Content-Disposition", "attachment;filename=" + filename);
page.Response.ContentType = strType;
page.EnableViewState = false;


System.IO.StringWriter swOut = new System.IO.StringWriter();
HtmlTextWriter hTw = new HtmlTextWriter(swOut);
System.Web.UI.WebControls.DataGrid dg = new System.Web.UI.WebControls.DataGrid();

dg.DataSource = ds;
dg.DataBind();
dg.RenderControl(hTw);
page.Response.Write(swOut.ToString());
page.Response.End();
}

这是我的导出方法,在IE上是好用的,在原来的360浏览器3.6版上也是好用的,但用3.7版就不行了,现在我重新安装3.6版也不行了

安全设置我能想到的都启动开了,问题就在于原本3.6版看的时候没问题,升级了3.7就不行了,然后我又卸载了3.7,重新按3.6,结果也不能导出了。。。他们的设置都是一样的啊
...全文
236 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
子夜__ 2011-05-05
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 ice9ying 的回复:]

没有其他办法了吗
[/Quote]
public void CreateExcel(DataSet ds, string FileName)
{
HttpResponse resp;
resp = Page.Response;
FileName = Page.Server.UrlEncode(FileName); //文件名编码,否则出现乱码
resp.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
resp.AppendHeader("Content-Disposition", "attachment;filename=" + FileName);
string colHeaders = "", ls_item = "";
//定义表对象与行对象,同时用DataSet对其值进行初始化
DataTable dt = ds.Tables[0];

DataRow[] myRow = dt.Select();//可以类似dt.Select("id>10")之形式达到数据筛选目的
int i = 0;

int cl = dt.Columns.Count;
//取得数据表各列标题,各标题之间以t分割,最后一个列标题后加回车符
colHeaders = "姓名\t性别\n";
resp.Write(colHeaders);
//向HTTP输出流中写入取得的数据信息
//逐行处理数据
foreach (DataRow row in myRow)
{
//当前行数据写入HTTP输出流,并且置空ls_item以便下行数据
ls_item += row["Uname"].ToString() + "\t" + row["Usex"].ToString() + "\n";
resp.Write(ls_item);
ls_item = "";
}
resp.End();
}
ice9ying 2011-05-04
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lizhibin11 的回复:]
做个页面提示:请使用360浏览器之外的任意浏览器。
[/Quote]

.........但在360上用其他.net网站上的导出就没问题?那还是我这边哪里疏漏了,没有遇到这样问题的吗
lizhibin11 2011-05-04
  • 打赏
  • 举报
回复
做个页面提示:请使用360浏览器之外的任意浏览器。
ice9ying 2011-05-04
  • 打赏
  • 举报
回复
原本没分的,就为了问这个,昨天到处回帖- -,结果白弄了吗。。。。哎
ice9ying 2011-05-04
  • 打赏
  • 举报
回复
那用什么方法解决比较好,删掉“ page.Response.End();”这句话,导出框倒是会出现,也能导出,但导出的内容可想而知。。。。
  • 打赏
  • 举报
回复
浏览器不兼容。。杯具 哭吧
ice9ying 2011-05-04
  • 打赏
  • 举报
回复
没有其他办法了吗
ice9ying 2011-05-04
  • 打赏
  • 举报
回复
还可以用什么方式,因为会有分页,所以不能直接导出页面显示的repeater,所以我传了dataset以后导出的
ice9ying 2011-05-04
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 mockqi 的回复:]

没遇到过,你换一种导出代码。
[/Quote]

能换哪种??
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 ice9ying 的回复:]

引用 4 楼 lizhibin11 的回复:
做个页面提示:请使用360浏览器之外的任意浏览器。


.........但在360上用其他.net网站上的导出就没问题?那还是我这边哪里疏漏了,没有遇到这样问题的吗
[/Quote]

没遇到过,你换一种导出代码。

62,047

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

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