java批量导出数据到excel
使用hutool中的导出工具
1. 需要的依赖
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.0.7</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.1</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>3.17</version>
</dependency>
2. java代码
@RestController
public class Export {
@GetMapping("/export")
public void export(HttpServletResponse response){
List<Employee> list = new ArrayList<>();
list.add(new Employee("zhangsan",1231));
list.add(new Employee("zhangsan1",1232));
list.add(new Employee("zhangsan2",1233));
list.add(new Employee("zhangsan3",1234));
list.add(new Employee("zhangsan4",1235));
list.add(new Employee("zhangsan5",1236));
ExcelWriter writer = ExcelUtil.getWriter();
Map<String, String> map = new HashMap<>();
map.put("name", "姓名");
map.put("age", "年龄");
map.forEach(writer::addHeaderAlias);
writer.setOnlyAlias(true);
writer.merge(map.size()-1, "申请人员信息");
writer.write(list, true);
response.setContentType("application/octet-stream;charset=utf-8");
ServletOutputStream out= null;
try {
String fileName = URLEncoder.encode("入住记录", "UTF-8");
response.setHeader("Content-Disposition","attachment;filename="+fileName+".xls");
out = response.getOutputStream();
writer.flush(out, true);
} catch (IOException e) {
e.printStackTrace();
}finally {
writer.close();
}
IoUtil.close(out);
}
}