ASP.NET中GridView数据导出到Excel

/// <summary>
/// 导出按钮
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
protected void btnExport_Click1(object sender, EventArgs e)
{
    this.gv.AllowPaging = false;
    this.gv.AllowSorting = false;
    Query();//获取数据并绑定到GridView

    toExcel(this.gv);

    this.gv.AllowPaging = true;
    this.gv.AllowSorting = true;
    Query();//获取数据并绑定到GridView
}
/// <summary>
/// 导出到Excel
/// </summary>
/// <param name="gv"></param>
void toExcel(GridView gv){
    Response.Charset = "GB2312";
    Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");

    string fileName = "export.xls";
    string style = @"<style> .text { mso-number-format:@; } </script> ";
    Response.ClearContent();
    Response.AddHeader("content-disposition", "attachment; filename=" + fileName);
    Response.ContentType = "application/excel";
    StringWriter sw = new StringWriter();
    HtmlTextWriter htw = new HtmlTextWriter(sw);
    this.gv.RenderControl(htw);
    Response.Write(style);
    Response.Write(sw.ToString());
    Response.End();
}
/// <summary>
/// 这个重写貌似是必须的
/// </summary>
/// <param name="control"></param>
public override void VerifyRenderingInServerForm(Control control) { }
 

备注:

1、gv就是页面上的GridView空间名称;

2、代码中的Query方法所做的是,获取数据并绑定到GridView。
原文地址:https://www.cnblogs.com/yangwujun/p/5589838.html