EasyExcel无需实体类进行导出,使用List<Map>
@GetMapping(value = "/export")
public void export(HttpServletResponse response) throws IOException {
//表头 如果需要改动表头样式与实体类方法一致
List<List<String>> heads = new ArrayList<>();
heads.add(Arrays.asList("姓名"));
heads.add(Arrays.asList("年龄"));
heads.add(Arrays.asList("地址"));
//内容 这里使用List<Map<String, Object>> 如果要用实体类就要转换或者改service 太麻烦
List<Map<String, Object>> list = userService.selectList();
List<List<Object>> total=new ArrayList<>();
for(Map<String, Object> map : list){
List<Object> info=new ArrayList<>();
info.add(map.get("name"));
info.add(map.get("age"));
info.add(map.get("address"));
total.add(info);
}
String fileName = URLEncoder.encode("姓名簿", "UTF-8").replaceAll("\\+", "%20");
response.setContentType("application/-excel");
response.setCharacterEncoding("utf-8");
response.setHeader("Content-disposition", "attachment;filename*=utf-8''" + fileName + ".xlsx");//设置响应头
response.setHeader("mime","application/-excel");
EasyExcel.write(response.getOutputStream())
.head(heads)
.sheet("姓名簿")
.doWrite(total);
}