EasyExcel无需实体类进行导出,使用List<Map>

时间:2025-04-27 21:04:39
@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); }