Response.Buffer = true;
//Response.ClearContent();
//指定http名称和值
Response.AddHeader("content-disposition", "attachment; filename=" + HttpUtility.UrlEncode("test", System.Text.Encoding.UTF8) + ".xls");
//指定文件类型
Response.ContentType = "application/excel";
Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
StringWriter sw = new StringWriter();
ExcelGridView.AllowPaging = false;
this.ExcelGridView.DataSource = dtStudentScore;
ExcelGridView.DataBind();
//HtmlTextWriter 输出流
HtmlTextWriter htw = new HtmlTextWriter(sw);
ExcelGridView.RenderControl(htw);
string style = @"<style> .text { mso-number-format:\@; } </script> "; //单元格式为文本格式
//sw写入到http输出流
Response.Output.Write(style);
Response.Output.Write(sw.ToString());
Response.Flush();
Response.End();
ExcelGridView.Visible = false;|
换个浏览器试一下,看看是否是浏览器的问题。 gridview生成xsl文件,网上太多了啊 http://blogs.claritycon.com/blogs/steve_holstad/archive/2006/07/02/1131.aspx 一老外的blog 不错的,去看看吧lz 无畏 你看看我这篇博客吧! 这个是可以的。 http://www.cnblogs.com/morningwang/archive/2007/05/30/765041.html |
|
3个月前 吴畏 : 不是浏览器的原因,因为同一个项目下有其他页面也是用同样的方式输出Excel,没有问题,谢谢你的回答。 |
|
3个月前 吴畏 : 谢谢你们的回答,我在项目中用GridView导出Excel是成功的,我遇到的问题是:客户端导出Excel后,再点击当前的页面,页面没有任何反应,而更离奇的是,我的导出Excel代码是完全拷贝同一个项目下另一个页面的代码,而该页面没有这问题。 |