.net中将DataTable导出到word、Excel、txt、htm的方法
dt:DataTable
strFile:fileName
strExt:type
private void GridExport(DataTable dt, string strFile, string strExt)
{
string strAppType = "";
switch (strExt)
{
case "xls":
strAppType = "application/ms-excel";
break;
case "doc":
strAppType = "application/ms-word";
break;
case "txt":
strAppType = "application/ms-txt";
break;
case "html":
case "htm":
strAppType = "application/ms-html";
break;
default: return;
}
GridView MyGridView = new GridView();
MyGridView.DataSource = dt;
MyGridView.DataBind();
HttpContext.Current.Response.Clear();
HttpContext.Current.Response.Buffer = true;
HttpContext.Current.Response.AddHeader("Content-Type", "text/html; charset=GB2312");
HttpContext.Current.Response.AppendHeader("Content-Disposition", string.Format("attachment;filename={0}.{1}", HttpUtility.UrlEncode(strFile,Encoding.GetEncoding("GB2312")), strExt));
HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312");
HttpContext.Current.Response.ContentType = strAppType;
//MyGridView.Page.EnableViewState = false;
//二、定义一个输入流
System.Globalization.CultureInfo myCItrad = new System.Globalization.CultureInfo("ZH-CN", true);
System.IO.StringWriter oStringWriter = new System.IO.StringWriter(myCItrad);
System.Web.UI.HtmlTextWriter oHtmlTextWriter = new System.Web.UI.HtmlTextWriter(oStringWriter);
//三、将目标数据绑定到输入流输出
MyGridView.RenderControl(oHtmlTextWriter);
HttpContext.Current.Response.Write(oStringWriter.ToString());
HttpContext.Current.Response.End();
}