ecxel导出
ecxel导出
maven
1
2
3
4
5<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>4.5.9</version>
</dependency>后端
controller接口
1
2
3
4
5
6
7
8
9
10
11@ApiOperation(value = "数据导出--待完成", notes = "数据导出", httpMethod = "POST")
@PostMapping(value = "/excel/export", headers = "Accept=application/octet-stream")
public void export(@ApiParam HttpServletResponse response,@RequestBody String matrixId) {
try {
System.out.println(matrixId);
bodyService.excelExport(response);
} catch (Exception e) {
log.error("批量导出失败!", e);
}
}serviceImpl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49/**
* 矩阵管理-数据导出
*
* @param response
*/
@Override
public void excelExport(HttpServletResponse response) {
// 创建excel表格数据
ArrayList<Map<String, Object>> rows = createExcelData();
ExcelWriter writer = ExcelUtil.getWriter(false);
OutputStream out = null;
try {
// 一次性写出内容,强制输出标题
writer.write(rows, true);
// 矩阵名称 TODO
String fileName = URLEncoder.encode("数据导出", "UTF-8");
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=utf-8");
response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xls");
out = response.getOutputStream();
writer.flush(out, true);
} catch (Exception e) {
e.printStackTrace();
} finally {
writer.close();
IoUtil.close(out);
}
}
/**
* 创建excel表格数据 TODO 1.添加隐藏列,校验动态列 2.下拉框
*
* @return
*/
private ArrayList<Map<String, Object>> createExcelData() {
// 创建excel表格数据
Map<String, Object> row = new LinkedHashMap<>();
row.put("序号", "1");
row.put("组织单元编码", "A020");
row.put("组织单元", "集团总部 / 人力资源部");
row.put("岗位编码", "P001");
row.put("岗位名称", "COE");
ArrayList<Map<String, Object>> rows = CollUtil.newArrayList();
rows.add(row);
return rows;
}
postMan测试
