#region DataTable導(dǎo)出到Excel
/// summary>
/// DataTable導(dǎo)出到Excel
/// /summary>
/// param name="pData">DataTable/param>
/// param name="pFileName">導(dǎo)出文件名/param>
/// param name="pHeader">導(dǎo)出標(biāo)題以|分割/param>
public static void DataTableExcel(System.Data.DataTable pData, string pFileName, string pHeader)
{
System.Web.UI.WebControls.DataGrid dgExport = null;
// 當(dāng)前對話
System.Web.HttpContext curContext = System.Web.HttpContext.Current;
// IO用于導(dǎo)出并返回excel文件
System.IO.StringWriter strWriter = null;
System.Web.UI.HtmlTextWriter htmlWriter = null;
if (pData != null)
{
string UserAgent = curContext.Request.ServerVariables["http_user_agent"].ToLower();
if (UserAgent.IndexOf("firefox") == -1)//火狐瀏覽器
pFileName = HttpUtility.UrlEncode(pFileName, System.Text.Encoding.UTF8);
curContext.Response.AddHeader("Content-Disposition", "attachment; filename=" + pFileName + ".xls");
curContext.Response.ContentType = "application/vnd.ms-excel";
strWriter = new System.IO.StringWriter();
htmlWriter = new System.Web.UI.HtmlTextWriter(strWriter);
// 為了解決dgData中可能進(jìn)行了分頁的情況,需要重新定義一個(gè)無分頁的DataGrid
dgExport = new System.Web.UI.WebControls.DataGrid();
dgExport.DataSource = pData.DefaultView;
dgExport.AllowPaging = false;
dgExport.ShowHeader = false;//去掉標(biāo)題
dgExport.DataBind();
string[] arrHeader = pHeader.Split('|');
string strHeader = "table border=\"1\" style=\"background-color:Gray;font-weight:bold;\">tr>";
foreach (string j in arrHeader)
{
strHeader += "td>" + j.ToString() + "/td>";
}
strHeader += "/tr>/table>";
// 返回客戶端
dgExport.RenderControl(htmlWriter);
string strMeta = "meta http-equiv=\"content-type\" content=\"application/ms-excel; charset=UTF-8\"/>";
curContext.Response.Write(strMeta + strHeader + strWriter.ToString());
curContext.Response.End();
}
}
#endregion