杂记toCSV

 //注意页面下载时候不要用jquery触发会被提前拦截。

StringBuilder sb = new StringBuilder();
                string type = Request.Params["type"];
                string fileName = string.Empty;
                switch (type)
                {
                    case"1":
                        fileName = "获奖名单报表";
                        sb.AppendFormat("{0},{1},{2},{3},{4},{5},{6}", "姓名", "部门", "中奖奖项", "中奖日期", "电话", "邮箱", "地址");
                        sb.Append("\n");
                        List<Awards> awardsList = UserService.GetAwardsList();
                        int awardsItem = awardsList.Count;
                        for (int i = 0; i < awardsItem; i++)
                        {
                            //对于EXCEL文件, 在禁止转义的内容前,加上一个半角单引号,' 符号
                            //对于导出 CSV 文件,在禁止转义的内容前,加上一个TAB符号,里面是 \t
                            sb.AppendFormat("\t{0},\t{1},\t{2},\t{3},\t{4},\t{5},\t{6}",
                                awardsList[i].RealName, awardsList[i].Department,
                                awardsList[i].Award, awardsList[i].AwardTime, awardsList[i].Phone,
                                awardsList[i].Email, awardsList[i].Address);
                            sb.Append("\n");
                        }
                        break;
                    case "2":
                        fileName = "部门获奖统计报表";
                        sb.AppendFormat("{0},{1}", "所属部门", "累计人数");
                        sb.Append("\n");
                        List<ActivitysShort> activitysShortList = UserService.GetActivitysShortList();
                        int activitysShortItem = activitysShortList.Count;
                        for (int i = 0; i < activitysShortItem; i++)
                        {
                            sb.AppendFormat("\t{0},\t{1}", activitysShortList[i].Department, activitysShortList[i].AwardNum);
                            sb.Append("\n");
                        }
                        break;
                    case "3":
                        fileName = "活动详细参与报表";
                        sb.AppendFormat("{0},{1},{2},{3},{4},{5}", "姓名", "部门", "电话", "邮箱", "地址", "参与日期");
                        sb.Append("\n");
                        List<Activitys> activitysList = UserService.GetActivitysList();
                        int activitysItem = activitysList.Count;
                        for (int i = 0; i < activitysItem; i++)
                        {
                            sb.AppendFormat("\t{0},\t{1},\t{2},\t{3},\t{4},\t{5}",
                               activitysList[i].RealName, activitysList[i].Department,
                               activitysList[i].Phone,activitysList[i].Email,
                               activitysList[i].Address, activitysList[i].Createtime);
                            sb.Append("\n");
                        }
                        break;
                    default:
                        break;
                }
  
                Response.Clear();
                Response.ClearHeaders();
                Response.Buffer = false;
                byte[] data = Encoding.Default.GetBytes(sb.ToString());
                Response.AddHeader("content-disposition", "attachment; filename=" + HttpUtility.UrlEncode(string.Format("{0}{1:yyyyMMddhhmmss}",fileName, DateTime.Now), System.Text.Encoding.UTF8) + ".csv");
                Response.ContentType = "application/octet-stream";
                Response.ContentEncoding = Encoding.GetEncoding("utf-8");
                Response.BinaryWrite(data);
                Response.Flush();
                Response.End();

posted @ 2012-05-11 22:31  火腿骑士  阅读(160)  评论(0编辑  收藏  举报