zoukankan      html  css  js  c++  java
  • DataTable导出到Excel

     #region  DataTable导出到Excel
            /// <summary>
            /// DataTable导出到Excel
            /// </summary>
            /// <param name="pData">DataTable</param>
            /// <param name="pFileName">导出文件名</param>
            /// <param name="pHeader">导出标题以|分割</param>
            public static void DataTableExcel(System.Data.DataTable pData, string pFileName, string pHeader)
            {
                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 (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中可能进行了分页的情况,需要重新定义一个无分页的DataGrid
                    dgExport = new System.Web.UI.WebControls.DataGrid();
                    dgExport.DataSource = pData.DefaultView;
                    dgExport.AllowPaging = false;
                    dgExport.ShowHeader = false;//去掉标题
                    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

  • 相关阅读:
    在 Java SE 6 中监视和诊断性能问题
    Codeforces Round #491 (Div. 2)部分题解
    BZOJ1607: [Usaco2008 Dec]Patting Heads 轻拍牛头(模拟 调和级数)
    BZOj1261: [SCOI2006]zh_tree(dp)
    BZOJ1569: [JSOI2008]Blue Mary的职员分配(dp 暴力)
    BZOJ4300: 绝世好题(dp)
    树上莫队算法
    SPOJ COT2
    BZOJ1086: [SCOI2005]王室联邦(贪心,分块?)
    Educational Codeforces Round 42 (Rated for Div. 2)
  • 原文地址:https://www.cnblogs.com/li-fei/p/3374236.html
Copyright © 2011-2022 走看看