在ASP.NET根据DataTable中的内容导出Excel


 前台代码:

"btnExcel" runat="server" Text="Excel导出" CssClass="button" OnClick="btnExcel_Click" />

后台实现功能代码:

       //实现导出
        protected void btnExcel_Click(object sender, EventArgs e)
        {
            DataTable thisTable = RptBinds("id>0 and status in(2,3) and is_refund=0 " + CombSqlTxt(), "add_time desc,id desc");
            string css = ".firstTR td{color:blue;widtd:100px;}.secondTR td{color:blue;widtd:100px;}.tdal{text-align:center;}.tdals{text-align:center;background-color:#ccfefe;}";
            string filename = "学员信息.xls";//Excel名称
            ExportToExcel(filename, GetExcelContent(thisTable), css);
        }


        /// 
        /// 把DataTable的内容转成Table中拼接的字符串
        /// 
        /// 数据源
        /// 返回一个Table格式的字符串
        private string GetExcelContent(DataTable dt)
        {
            StringBuilder sb = new StringBuilder();
            sb.Append("");
            //生成表格头
            sb.Append("");
            sb.Append("");
            sb.Append("");
            //循环生成表格内容for (int i = 0; i < dt.Rows.Count; i++)
            {
                sb.Append("");
                sb.Append("");
                sb.Append("");
                sb.Append("");
                sb.Append("");
                sb.Append("");
                sb.Append("");
                sb.Append("");
            }

            sb.Append("
学号姓名性别出生日期民族手机号码班级地址
" + dt.Rows[i]["StudentID"] + "" + dt.Rows[i]["Name"] + "" + dt.Rows[i]["Gender"] + "" + dt.Rows[i]["Age"] + "" + dt.Rows[i]["Nation"] + "" + dt.Rows[i]["Phone"] + "" + dt.Rows[i]["Sclass"] + "" + dt.Rows[i]["Address"] + "
"); return sb.ToString(); } /// /// 导出生成的Excel /// /// Excel名称 /// 内容 /// 样式 public static void ExportToExcel(string filename, string content, string cssText) { var res = HttpContext.Current.Response; content = String.Format("{1}", cssText, content); res.Clear(); res.Buffer = true; res.Charset = "GB2312"; res.AddHeader("Content-Disposition", "attachment; filename=" + filename); res.ContentEncoding = System.Text.Encoding.GetEncoding("GB2312"); res.ContentType = "application/ms-excel;charset=GB2312"; res.Write(content); res.Flush(); res.End(); }