//注意页面下载时候不要用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();