转自:http://www.dreamwu.com/post-425.html
今天的积累都是为了更好的明天,加油!我是java程序员可以关注我一起学习哈!
今天心血来潮,突然想起很久以前的一个导出excel的功能,以前用的poi感觉挺麻烦的!今天就简单写下EasyExcel版本的,EasyExcel是阿里的一个开源框架!github地址https://github.com/alibaba/easyexcel大家也可以下载下来看看源码!我这里只做了一个简单的demo!
EasyExcel和POI的对比
1、相比于POI,EasyExcel简化了开发量,能够用更少的代码实现更多的功能
2、相比于POI,EasyExcel使用简单
3、相比于POI,EasyExcel能够使用更少的内存占用
首先我们创建一个springboot项目,在此就不过多的啰嗦,创建好之后,首先需要引入easyexcel的包!
引入依赖
<!--easyexcel--> <dependency> <groupId>com.alibaba</groupId> <artifactId>easyexcel</artifactId> <version>1.1.2-beta5</version> </dependency>
实体类
@Data public class Users extends BaseRowModel { @ExcelProperty(value = {"主键ID"}, index = 0) private String id; @ExcelProperty(value = {"用户姓名"}, index = 1) private String name; @ExcelProperty(value = {"用户年龄"}, index = 2) private String age; }
Controller层
@RequestMapping("/exportExcel") public void export(HttpServletResponse response) throws IOException { List<Users> list = userService.findAllUser(); ServletOutputStream out = response.getOutputStream(); ExcelWriter writer = new ExcelWriter(out, ExcelTypeEnum.XLSX, true); String fileName = "测试exportExcel"; Sheet sheet = new Sheet(1, 0,Users.class); //设置自适应宽度 sheet.setAutoWidth(Boolean.TRUE); // 第一个 sheet 名称 sheet.setSheetName("第一个sheet"); writer.write(list, sheet); //通知浏览器以附件的形式下载处理,设置返回头要注意文件名有中文 response.setHeader("Content-disposition", "attachment;filename=" + new String( fileName.getBytes("gb2312"), "ISO8859-1" ) + ".xlsx"); writer.finish(); response.setContentType("multipart/form-data"); response.setCharacterEncoding("utf-8"); out.flush(); }
看下效果吧!
EasyExcel的确要比poi操作简单的多!