.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();
    }

posted @ 2016-02-04 17:51  blfshiye  阅读(208)  评论(0编辑  收藏  举报