作者:fyupeng
技术专栏:☞ https://github.com/fyupeng
分布式博客项目地址:☞ https://github.com/fyupeng/distributed-blog-system-api
留给读者
工作中难免会遇到数据导出的问题,最简单的解决方案就是引入阿里的EasyExcel来解决。
一、介绍
EasyExcel是alibaba开源的一个Excel工具,容易上手,基本能够满足企业的需求。
1 2 3 4 5
| <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>2.2.6</version> </dependency>
|
二、代码
1. 实体注解
1 2 3 4 5 6 7 8 9 10 11 12 13
| @NoArgsConstructor @AllArgsConstructor @ToString @Data @Builder(toBuilder = true) public class Entity implements Serializable { @ExcelProperties(value = "编码", index = 0) private String code;
@ExcelProperties(value = "名称", index = 1) private String name; }
|
2. 核心代码
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
| public void export(HttpServletRequest request, HttpServletResponse response) { String fileName = "导出明细.xlsx"; OutputStream out = null; try { response.setContentType("application/octet-stream;charset=UTF-8"); response.setHeader("Content-Type", "application/vnd.ms-excel"); fileName = URLEncoder.encode(fileName, "UTF-8"); response.setHeader("Content-Disposition", "attachment;filename=", fileName); response.addHeader("Cache-Control", "no-cache"); out = response.getOutputStream(); ExcelWriter excelWriter = EasyExcel.write(out).build(); WriteSheet sheet = EasyExcel.writeSheet(0, "基本信息").head(Entity.class).build(); List<Entity> list = new ArrayList<>(); excelWriter.write(list, sheet); excelWriter.finish(); response.flushBuffer(); } catch (IOException e) { throw new Exception("明细导出失败!"); } }
|
三、总结
每日总结归档,学习会遗忘,但学习后总结不会,它能让你变得越来越强!