当前位置:   article > 正文

easyexcel 动态列导出

easyexcel 动态列导出

1. 引入easyexcel

  1. <dependency>
  2. <groupId>com.alibaba</groupId>
  3. <artifactId>easyexcel</artifactId>
  4. <version>3.2.1</version>
  5. </dependency>

2.导出write

  1. public void export(HttpServletResponse response) {
  2. try {
  3. String fileName = "测试导出动态列" + System.currentTimeMillis();
  4. Set<String> includeColumnFiledNames = new HashSet<>();
  5. includeColumnFiledNames.add("title");
  6. includeColumnFiledNames.add("openId");
  7. List<Category> categoryList = getAllCategory();
  8. List<CategoryExport> categoryExports = BeanUtil.copyToList(categoryList, CategoryExport.class);
  9. response.setContentType("application/vnd.ms-excel");// 设置文本内省
  10. response.setCharacterEncoding("utf-8");// 设置字符编码
  11. response.setHeader("Content-disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8") + ".xlsx"); // 设置响应头
  12. ExcelWriterBuilder write = EasyExcel.write(response.getOutputStream(), CategoryExport.class);
  13. if (includeColumnFiledNames.size() > 0) {
  14. write.includeColumnFieldNames(includeColumnFiledNames);
  15. }
  16. write.sheet("模板").doWrite(categoryExports); //用io流来写入数据
  17. } catch (IOException e) {
  18. e.printStackTrace();
  19. }
  20. }

3.导出类

  1. @Data
  2. public class CategoryExport implements Serializable {
  3. private static final long serialVersionUID = 1L;
  4. private Long id;
  5. @ExcelProperty("openId")
  6. private String openId;
  7. @ExcelProperty("priority")
  8. private Integer priority;
  9. @ExcelProperty("标题")
  10. private String title;
  11. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/IT小白/article/detail/364363
推荐阅读
相关标签
  

闽ICP备14008679号