当前位置:   article > 正文

EasyExcel 导出Excel

EasyExcel 导出Excel

maven

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

java

  1. package com.example.excel;
  2. import com.alibaba.excel.EasyExcel;
  3. import com.alibaba.excel.ExcelWriter;
  4. import com.alibaba.excel.write.metadata.WriteSheet;
  5. import com.example.excel.model.User;
  6. import com.example.excel.util.CustomCellWriteWidthHandle;
  7. import java.io.File;
  8. import java.net.MalformedURLException;
  9. import java.net.URL;
  10. import java.util.ArrayList;
  11. import java.util.List;
  12. public class EasyExcelExportExample {
  13. public static void main(String[] args) throws MalformedURLException, InterruptedException {
  14. File file = new File("C:\\Workspace\\excel\\src\\main\\resources\\fz.png");
  15. URL url = file.toURI().toURL();
  16. List<User> dataList= new ArrayList<>();
  17. for(int i=1;i<=5000;i++){
  18. User u = new User();
  19. u.setId("id-"+i);
  20. u.setName("name"+i);
  21. u.setAge(i);
  22. u.setHeadImage(url);
  23. dataList.add(u);
  24. }
  25. ExcelWriter excelWriter = EasyExcel.write("example.xlsx").registerWriteHandler(new CustomCellWriteWidthHandle()).head(User.class).build();
  26. // 需要导出的数据总数
  27. int totalCount = dataList.size();
  28. // 每个sheet包含的数据量
  29. int sheetDataCount = 500;
  30. // 计算sheet数量
  31. int sheetCount = (totalCount + sheetDataCount - 1) / sheetDataCount;
  32. for (int i = 0; i < sheetCount; i++) {
  33. int dataStart = i * sheetDataCount;
  34. int dataEnd = Math.min(dataStart + sheetDataCount, totalCount);
  35. List<User> sheetData = dataList.subList(dataStart, dataEnd);
  36. WriteSheet writeSheet = EasyExcel.writerSheet(i, "数据"+(i+1)).build();
  37. excelWriter.write(sheetData, writeSheet);
  38. }
  39. excelWriter.finish();
  40. }
  41. }

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

闽ICP备14008679号