日期:2014-05-17  浏览次数:20542 次

来高手指点啊,gridview导出到excel的问题
这是我的方法:
  Response.Clear();
  Response.AddHeader("Content-Type ", "application/octet-stream ");
  Response.AddHeader("content-disposition", "attachment;filename=AJ_JC.xls");
  Response.Charset = "UTF-8";
  Response.ContentType = "application/vnd.xls";
  System.IO.StringWriter stringWrite = new System.IO.StringWriter();
  System.Web.UI.HtmlTextWriter htmlWrite = new HtmlTextWriter(stringWrite);

  GridView1.AllowPaging = false;
  GridView1.AllowSorting = false; 
  Bind1();
  GridView1.Columns[0].Visible = false;
   
  GridView1.RenderControl(htmlWrite);

  Response.Write(stringWrite.ToString());
  Response.End();
现在的问题是:
Bind1();绑定的是当前查询的数据然后导出
数据多的时候都可以成功导出,少的时候导出框就会一闪而过(我的gridview设置的是一页显示10条数据,基本查询的数据达到三页才可以导出,否则就是一闪而过,偶尔点导出按钮点个几十次能停留一次。。。让我狂⊙﹏⊙b汗)

我试了试,如果去掉Response.End();就没这个问题了,但是如果去掉Response.End();的话整个页面连textbox和button按钮就一块导出了特别难看

在线跪求解决办法



------解决方案--------------------
Response.ContentType = "application/ms-excel";

记得禁用下ViewState
------解决方案--------------------
Response.Write(stringWrite.ToString());
 Response.Flush();
 Response.End();
------解决方案--------------------
GridView1.AllowPaging = false;在这句前面加上GridView1.EnableViewState=false;

另外网上很多ASP.NET 导出EXCEL的例子你直接复制就可以用的
------解决方案--------------------
Flush了么