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

asp.net导出excel
在网上找的代码,有几种方法
我用的这种方法:由datagrid生成

 public void ToExcel(System.Web.UI.Control ctl)
    {
        HttpContext.Current.Response.AppendHeader("Content-Disposition", "attachment;filename=Excel.xls");
        HttpContext.Current.Response.Charset = "UTF-8";
        HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.Default;
        HttpContext.Current.Response.ContentType = "application/ms-excel";//image/JPEG;text/HTML;image/GIF;vnd.ms-excel/msword 
        ctl.Page.EnableViewState = false;
        System.IO.StringWriter tw = new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
        ctl.RenderControl(hw);
        HttpContext.Current.Response.Write(tw.ToString());
        HttpContext.Current.Response.End();
    } 
protected void Button3_Click(object sender, EventArgs e)
{
   ToExcel(GridView1);
}

问题是,GridView1用了分页,导出的只是第一页的数据
怎样才能导出全部的数据
GridView1.AllowPaging = false; 好像不好使啊
------最佳解决方案--------------------
那就是你代码写的有问题,跟踪调试一下
------其他解决方案--------------------
你需要遍历,请参考:
http://www.cnblogs.com/kangjin0828/archive/2010/03/17/1687884.html
------其他解决方案--------------------
晕额,你都可以导出第一页数据,那为什么不能导出全部的?你导出时候把条件改成查询所有的样子不就行了?
------其他解决方案--------------------
你可以不基于gv,重新绑定一下表给excel
------其他解决方案--------------------
引用:
你需要遍历,请参考:
http://www.cnblogs.com/kangjin0828/archive/2010/03/17/1687884.html

试了,导出的是空
------其他解决方案--------------------
引用:
晕额,你都可以导出第一页数据,那为什么不能导出全部的?你导出时候把条件改成查询所有的样子不就行了?

基于GridView导出的,GridView用了分页,所以这样
------其他解决方案--------------------
学习!
------其他解决方案--------------------
考虑下专门做一个datatable出来用于绑定如何?