@SuppressWarnings("unchecked")
@RequestMapping(value = "/soso/export", method = { RequestMethod.GET, RequestMethod.POST })
public void export(@RequestParam(value = "taskid") String taskid, HttpServletRequest request,
HttpServletResponse response, HttpSession session) {
//判断是否为空
try {
Soso task = mapperService.get(Soso.class, taskid);
if (task == null) {
return;
}
//把两种结果都导进去
List<MemberRecord> records = getRecords(taskid, TaskStatus.CheckSuccess);
List<MemberRecord> record2 = getRecords(taskid, TaskStatus.CheckFailure);
records.addAll(record2);
//解析json数组,读取需要内容 然后写入
List<Map<String, Object>> data = new ArrayList<>();
Map<String, String> cols = new LinkedHashMap<>();
for (MemberRecord record : records) {
Map<String, Object> json = JSONObject.fromObject(record);
String result = record.getResult();
JSONArray array = JSONArray.fromObject(result);
for (int i = 0; i < array.size(); i++) {
JSONObject j = array.getJSONObject(i);
cols.put("pic"+i, "截图" + (i+1));
String url = j.get("image") + "";
json.put("pic"+i, url);
}
Member member = mapperService.get(Member.class, record.getMemberId());
if (member==null) {
continue;
}
json.put("createTime", new Date(record.getCreateTime()).stringify("yyyy-MM-dd HH:mm"));
json.put("phone", member.getPhone());
json.put("status", record.getStatus().getTitle());
data.add(json);
}
response.setCharacterEncoding("utf-8");
response.setContentType("application/vnd.ms-excel");
//文件名
response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(task.getTitle(), "utf-8") +".xls ");
//设置xls的第一行
Map<String, String> columns = new LinkedHashMap<>();
columns.put("status", "审核结果");
columns.put("createTime", "任务时间");
columns.put("phone", "手机号");
columns.put("imei", "设备标识");
columns.putAll(cols);
//写入数据
Excel.write(columns, data, response.getOutputStream());
} catch (Exception e) {
e.printStackTrace();
}
}
记得判断是否为空,否则容易出错