.net2008导出到Excel方法

传入参数: DataTable表的结果集,FileName文件名

 

public static void ExportToExcel(DataTable dt, string FileName)
{
    try
    {
        System.Web.HttpResponse httpResponse = System.Web.HttpContext.Current.Response;
        httpResponse.Clear();
        System.Web.UI.WebControls.GridView dataGrid = new System.Web.UI.WebControls.GridView();
        dataGrid.DataSource = dt;
        dataGrid.AllowPaging = false;
        dataGrid.HeaderStyle.BackColor = System.Drawing.Color.YellowGreen;
        dataGrid.HeaderStyle.HorizontalAlign = HorizontalAlign.Center;
        dataGrid.HeaderStyle.Font.Bold = true;
        dataGrid.Font.Size = 10;
        dataGrid.DataBind();
        httpResponse.Charset = "GB2312";
        httpResponse.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlPathEncode(FileName));
        httpResponse.ContentType = "application/vnd.ms-excel";
        httpResponse.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
        httpResponse.Write("<meta http-equiv=Content-Type content=/"text/html;charset=GB2312/">");

        System.IO.StringWriter tw = new System.IO.StringWriter();
        System.Web.UI.HtmlTextWriter hw = new System.Web.UI.HtmlTextWriter(tw);
        dataGrid.RenderControl(hw);
        httpResponse.Write(tw.ToString());
        httpResponse.End();
        _message = "文件导出成功";
        _isSucceed = true;
    }
    catch (Exception ex)
    {
        _message = "文件导出失败:" + ex.Message.ToString();
        _isSucceed = false;
    }

}

以上的字集GB2312或UTF-8,全部测试通过

 

网上抄毕竟还是抄的,不如自己总结出一个方法

你可能感兴趣的:(.net2008导出到Excel方法)