当前位置:   article > 正文

EasyExcel3 list<> 写入excel_easyexcel不能写入list?

easyexcel不能写入list?

EasyExcel是一个基于Java的、快速、简洁、解决大文件内存溢出的Excel处理工具。它能让你在不用考虑性能、内存的等因素的情况下,快速完成Excel的读、写等功能。

在EasyExcel的示例里面都是使用实体写入Excel的,没有使用List<List<String>>写入的。

这里是利用EasyExcel 3 生成数据流直接给前端导出使用,对于需要生成Excel的,直接把数据流写入excel文件即可。

  1. /**
  2. * 导出excel,生成byte数组
  3. *
  4. * @param list 数据 list
  5. * @param sheetName 导入文件的 sheet 名
  6. */
  7. public static byte[] exportExcel(List<List<String>> list, String sheetName) {
  8. ByteArrayOutputStream out = new ByteArrayOutputStream();
  9. try (ExcelWriter excelWriter = EasyExcelFactory.write(out).build()) {
  10. // 这里注意 如果同一个sheet只要创建一次
  11. WriteSheet writeSheet = EasyExcelFactory.writerSheet(sheetName).build();
  12. // 先写头,后写数据
  13. //excelWriter.write(header, writeSheet);
  14. excelWriter.write(list, writeSheet);
  15. //关键:否则无数据写入,写完成,缓冲区数据写入out;
  16. excelWriter.finish();
  17. log.debug("out.size():{}", out.size());
  18. return out.toByteArray();
  19. } finally {
  20. try {
  21. out.close();
  22. } catch (IOException e) {
  23. e.printStackTrace();
  24. }
  25. }
  26. }

 对于实体写入Excel的,这里也对应一段代码,

同样,对于需要生成Excel的,直接把数据流写入excel文件即可。

  1. /**
  2. * 导出excel,生成byte数组
  3. *
  4. * @param cla 要转换的Object对应Class类
  5. * @param list 数据 list
  6. * @param header 表头
  7. * @param sheetName 导入文件的 sheet 名
  8. */
  9. public static byte[] exportExcel(Class<?> cla, List<Object> list, List<Object> header, String sheetName) {
  10. ByteArrayOutputStream out = new ByteArrayOutputStream();
  11. // 这里 需要指定写用哪个class去写
  12. ExcelWriter excelWriter = EasyExcelFactory.write(out, cla).build();
  13. // 这里注意 如果同一个sheet只要创建一次
  14. WriteSheet writeSheet = EasyExcelFactory.writerSheet(sheetName).build();
  15. // 先写头,后写数据
  16. excelWriter.write(header, writeSheet);
  17. excelWriter.write(list, writeSheet);
  18. //关键:否则无数据写入,写完成,缓冲区数据写入out;
  19. excelWriter.finish();
  20. byte[] bytes = out.toByteArray();
  21. try {
  22. out.close();
  23. } catch (IOException e) {
  24. }
  25. return bytes;
  26. }

项目需要引入依赖类:

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

希望对大家有帮助。

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

闽ICP备14008679号