前台:
<li> <asp:LinkButton ID="btnStuExcel" runat="server" CssClass="daochu-view" OnClick="btnStuExcel_Click"><i></i><span style="display: inline-block; vertical-align: middle;">导出学生数据</span></asp:LinkButton>
</li>
后台:
var sql = GetListSql(); List<ta_Student> data = ta_Student.Fetch(sql); if (Exec.CheckList(data)) { DataTable dt = new DataTable(); dt.Columns.Add("序号", Type.GetType("System.String")); dt.Columns.Add("姓名", Type.GetType("System.String")); dt.Columns.Add("性别", Type.GetType("System.String")); dt.Columns.Add("学号", Type.GetType("System.String")); dt.Columns.Add("卡号", Type.GetType("System.String")); dt.Columns.Add("标识", Type.GetType("System.String")); dt.Columns.Add("所在班级", Type.GetType("System.String")); dt.Columns.Add("所在年级", Type.GetType("System.String")); dt.Columns.Add("所在学校", Type.GetType("System.String")); dt.Columns.Add("宿舍楼", Type.GetType("System.String")); dt.Columns.Add("宿舍号", Type.GetType("System.String")); dt.Columns.Add("亲1", Type.GetType("System.String")); dt.Columns.Add("亲1号码", Type.GetType("System.String")); dt.Columns.Add("亲2", Type.GetType("System.String")); dt.Columns.Add("亲2号码", Type.GetType("System.String")); dt.Columns.Add("亲3", Type.GetType("System.String")); dt.Columns.Add("亲3号码", Type.GetType("System.String")); dt.Columns.Add("亲4", Type.GetType("System.String")); dt.Columns.Add("亲4号码", Type.GetType("System.String")); dt.Columns.Add("亲5", Type.GetType("System.String")); dt.Columns.Add("亲5号码", Type.GetType("System.String")); dt.Columns.Add("创建时间", Type.GetType("System.String")); int i = 1; foreach (var item in data) { DataRow dr = dt.NewRow(); dr["序号"] = i; dr["姓名"] = item.Name; dr["性别"] = item.Sex==1?"男": item.Sex == 2 ? "女" : "未知"; dr["标识"] = item.ID.ToString(); dr["卡号"] = item.rf_id; dr["学号"] = item.StudentNo; dr["所在班级"] = item.ClassName; dr["所在年级"] = item.GradeName; dr["宿舍楼"] = PublicQuery.GetTowerById(item.TowerId).Name; dr["宿舍号"] = PublicQuery.GetDormById(item.DormId).Name; dr["所在学校"] = item.SchoolName; dr["创建时间"] = Exec.GetTime(item.CreateTime, 0); dr["亲1"] = item.qin1_name; dr["亲1号码"] = item.qin1; dr["亲2"] = item.qin2_name; dr["亲2号码"] = item.qin2; dr["亲3"] = item.qin3_name; dr["亲3号码"] = item.qin3; dr["亲4"] = item.qin4_name; dr["亲4号码"] = item.qin4; dr["亲5"] = item.qin5_name; dr["亲5号码"] = item.qin5; dt.Rows.Add(dr); i++; } DataOperate.ExportByWeb(dt, "学生用户信息表", "学生用户信息表" + DateTime.Now.Ticks + ".xls"); } else { ExtDialog.Dialog(this, "对不起,没有能够导出的数据", 4); }
ExportByWeb
public static void ExportByWeb(DataTable dtSource, string headerName, string fileName) { HttpContext curContext = HttpContext.Current; curContext.Response.Clear(); curContext.Response.ContentType = "application/vnd.ms-excel"; curContext.Response.Buffer = true; curContext.Response.Charset = "GBK2312"; curContext.Response.ContentEncoding = Encoding.UTF8; curContext.Response.AppendHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(fileName, Encoding.UTF8)); byte[] file = Export(dtSource, headerName).GetBuffer(); //添加头信息,指定文件大小,让浏览器能够显示下载进度 应该是配合其他东西使用的吧 curContext.Response.AppendHeader("Content-Length", file.Length.ToString()); curContext.Response.BinaryWrite(file); curContext.Response.Flush(); curContext.Response.Close(); curContext.Response.End(); }