在ASP.NET根据DataTable中的内容导出Excel
前台代码:
<asp:Button ID="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); } /// <summary> /// 把DataTable的内容转成Table中拼接的字符串 /// </summary> /// <param name="dt">数据源</param> /// <returns>返回一个Table格式的字符串</returns> private string GetExcelContent(DataTable dt) { StringBuilder sb = new StringBuilder(); sb.Append("<table border='1' >"); //生成表格头 sb.Append("<tr class='firstTR' style='height:30px;'><td class='tdals'>学号</td><td class='tdals'>姓名</td><td class='tdals'>性别</td>"); sb.Append("<td class='tdals'>出生日期</td><td class='tdals'>民族</td>"); sb.Append("<td class='tdals'>手机号码</td><td class='tdals'>班级</td><td class='tdals'>地址</td></tr>"); //循环生成表格内容 for (int i = 0; i < dt.Rows.Count; i++) { sb.Append("<tr class='secondTR'><td class='tdal'>" + dt.Rows[i]["StudentID"] + "</td>"); sb.Append("<td class='tdal'>" + dt.Rows[i]["Name"] + "</td>"); sb.Append("<td class='tdal'>" + dt.Rows[i]["Gender"] + "</td>"); sb.Append("<td >" + dt.Rows[i]["Age"] + "</td>"); sb.Append("<td >" + dt.Rows[i]["Nation"] + "</td>"); sb.Append("<td class='tdal'>" + dt.Rows[i]["Phone"] + "</td>"); sb.Append("<td class='tdal'>" + dt.Rows[i]["Sclass"] + "</td>"); sb.Append("<td class='tdal'>" + dt.Rows[i]["Address"] + "</td></tr>"); } sb.Append("</table>"); return sb.ToString(); } /// <summary> /// 导出生成的Excel /// </summary> /// <param name="filename">Excel名称</param> /// <param name="content">内容</param> /// <param name="cssText">样式</param> public static void ExportToExcel(string filename, string content, string cssText) { var res = HttpContext.Current.Response; content = String.Format("<style type='text/css'>{0}</style>{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(); }

浙公网安备 33010602011771号