java生成excel

阿里出品的 EasyExcel,安利一波

添加依赖

 
  1. <!--alibaba easyexcel-->

  2. <dependency>

  3. <groupId>com.alibaba</groupId>

  4. <artifactId>easyexcel</artifactId>

  5. <version>1.1.2-beta5</version>

  6. </dependency>

 七行代码搞定 Excel 生成

java生成excel

 

上面这段示例代码中,有两个点很重要:

 

  • ①:WriteModel 这个对象就是要写入 Excel 的数据模型对象,等等,你这好像不行吧?表头 head,以及每个单元格内的数据顺序都没指定,能达到想要的效果么?别急,后面会讨论这块!

  • :创建需要写入的数据集,当然了,正常业务中,这块都是从数据库中查询出来的。

  • 回过头来,我们来看看 WriteModel 这个对象内部到底有什么幺蛾子!

  • java生成excel

EasyExcel 提供注解的方式, 来方便的定义 Excel 需要的数据模型:

:首先,定义的写入模型必须要继承自 BaseRowModel.java;

:通过 @ExcelProperty 注解来指定每个字段的列名称,以及下标位置

同时,上面定义的 createModelList() 方法也很简单,通过循环,创建一个写入模型的 List 集合

java生成excel

 

Web 下载示例代码

 
  1. public class Down {

  2. @GetMapping("/a.htm")

  3. public void cooperation(HttpServletRequest request, HttpServletResponse response) {

  4. ServletOutputStream out = response.getOutputStream();

  5. ExcelWriter writer = new ExcelWriter(out, ExcelTypeEnum.XLSX, true);

  6. String fileName = new String(("UserInfo " + new SimpleDateFormat("yyyy-MM-dd").format(new Date())).getBytes(), "UTF-8");

  7. Sheet sheet1 = new Sheet(1, 0);

  8. sheet1.setSheetName("第一个sheet");

  9. writer.write0(getListString(), sheet1);

  10. writer.finish();

  11. response.setContentType("multipart/form-data");

  12. response.setCharacterEncoding("utf-8");

  13. response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");

  14. out.flush();

  15. }

  16. }