ASP.NET使用GridView导出Excel实现方法

时间:2022-09-14 10:56:41

本文实例讲述了ASP.NET使用GridView导出Excel实现方法。分享给大家供大家参考。具体实现方法如下:

 

复制代码代码如下:
/// <summary>  
/// 将DataTable数据导出到EXCEL,调用该方法后自动返回可下载的文件流  
/// </summary>  
/// <param name="dtData">要导出的数据源</param>  
public static void DataTable1Excel(System.Data.DataTable dtData)  
{  
        System.Web.UI.WebControls.GridView gvExport = null;  
        // 当前对话  
        System.Web.HttpContext curContext = System.Web.HttpContext.Current;  
        // IO用于导出并返回excel文件  
        System.IO.StringWriter strWriter = null;  
        System.Web.UI.HtmlTextWriter htmlWriter = null;  
  
        if (dtData != null)  
        {  
            // 设置编码和附件格式  
            curContext.Response.ContentType = "application/vnd.ms-excel";  
            curContext.Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");  
            curContext.Response.Charset = "utf-8";  
  
            // 导出excel文件  
            strWriter = new System.IO.StringWriter();  
            htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter);  
            // 为了解决gvData中可能进行了分页的情况,需要重新定义一个无分页的GridView  
            gvExport = new System.Web.UI.WebControls.GridView();  
            gvExport.DataSource = dtData.DefaultView;  
            gvExport.AllowPaging = false;  
            gvExport.DataBind();  
  
            // 返回客户端  
            gvExport.RenderControl(htmlWriter);  
            curContext.Response.Write("<meta http-equiv=\"Content-Type\" content=\"text/html; charset=gb2312\" />" + strWriter.ToString());  
            curContext.Response.End();  
        }  
}  
  
/// <summary>  
/// 直接输出Excel  
/// </summary>  
/// <param name="dtData"></param>  
public static void DataTable2Excel(System.Data.DataTable dtData)  
{  
          System.Web.UI.WebControls.DataGrid dgExport = null;  
      // 当前对话  
      System.Web.HttpContext curContext = System.Web.HttpContext.Current;  
      // IO用于导出并返回excel文件  
      System.IO.StringWriter strWriter = null;  
      System.Web.UI.HtmlTextWriter htmlWriter = null;  
  
      if (dtData != null)  
      {  
        // 设置编码和附件格式  
        curContext.Response.ContentType = "application/vnd.ms-excel";  
        curContext.Response.ContentEncoding =System.Text.Encoding.UTF8;  
        curContext.Response.Charset = "";  
                  
        // 导出excel文件  
        strWriter = new System.IO.StringWriter();  
        htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter);  
  
        // 为了解决dgData中可能进行了分页的情况,需要重新定义一个无分页的DataGrid  
        dgExport = new System.Web.UI.WebControls.DataGrid();           
        dgExport.DataSource = dtData.DefaultView;  
        dgExport.AllowPaging = false;  
        dgExport.DataBind();  
  
        // 返回客户端  
        dgExport.RenderControl(htmlWriter);    
        curContext.Response.Write(strWriter.ToString());  
        curContext.Response.End();  
      }  
}

 

希望本文所述对大家的asp.net程序设计有所帮助。