zoukankan      html  css  js  c++  java
  • 实现导出功能

    前台:

       <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();
            }
  • 相关阅读:
    javascript中replace()
    防止IE6出现BUG的十种常见解决方法
    IE6 重复字符的bug
    IE6 BUG大全
    display:inline
    JavaScript 图片上传预览效果
    用一行代码让w3wp进程崩溃,如何查找w3wp进程崩溃的原因
    近期学习任务
    气死我的存储过程和用户定义函数
    Damn,China Mobile!!!!
  • 原文地址:https://www.cnblogs.com/axu92312/p/12620446.html
Copyright © 2011-2022 走看看