EasyExcel 作为阿里的开源软件,是一个基于Java的、快速、简洁、解决大文件内存溢出的Excel处理工具。
使用
springboot整合easyexcel,引入pom
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.1.1</version>
</dependency>
java实现
//实体
@ExcelProperty("id")
private String id;
//serviceImpl实现
List<Data> res = new ArrayList();
EasyExcel.write("D:\\data\\csv\\test.csv", Data.class)
.excelType(ExcelTypeEnum.CSV)
.sheet("data")
.doWrite(res);
报错了
执行到.doWrite(res);抛出了异常
com.alibaba.excel.exception.ExcelGenerateException: java.lang.NoClassDefFoundError: org/apache/commons/compress/utils/Lists
at com.alibaba.excel.write.ExcelBuilderImpl.addContent(ExcelBuilderImpl.java:65)
at com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:70)
at com.alibaba.excel.ExcelWriter.write(ExcelWriter.java:47)
at com.alibaba.excel.write.builder.ExcelWriterSheetBuilder.doWrite(ExcelWriterSheetBuilder.java:62)
Caused by: java.lang.NoClassDefFoundError: org/apache/commons/compress/utils/Lists
at com.alibaba.excel.metadata.csv.CsvRow.<init>(CsvRow.java:53)
at com.alibaba.excel.metadata.csv.CsvSheet.createRow(CsvSheet.java:101)
at com.alibaba.excel.util.WorkBookUtil.createRow(WorkBookUtil.java:88)
at com.alibaba.excel.context.WriteContextImpl.initHead(WriteContextImpl.java:245)
at com.alibaba.excel.context.WriteContextImpl.initSheet(WriteContextImpl.java:209)
at com.alibaba.excel.context.WriteContextImpl.currentSheet(WriteContextImpl.java:135)
at com.alibaba.excel.write.ExcelBuilderImpl.addContent(ExcelBuilderImpl.java:54)
... 4 more
Caused by: java.lang.ClassNotFoundException: org.apache.commons.compress.utils.Lists
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:418)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:355)
at java.lang.ClassLoader.loadClass(ClassLoader.java:351)
... 11 more
解决
pom需要添加poi的2个依赖
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
09:33:05.966 [main] DEBUG com.alibaba.excel.context.WriteContextImpl - Can not find sheet:null ,now create it
09:33:06.024 [main] INFO com.alibaba.excel.write.metadata.holder.WriteWorkbookHolder - create new style:com.alibaba.excel.write.metadata.style.WriteCellStyle@c5cdd045,null
09:33:06.032 [main] INFO com.alibaba.excel.util.StyleUtil - create new font:com.alibaba.excel.write.metadata.style.WriteFont@96caf36,null
09:33:06.390 [main] DEBUG com.alibaba.excel.context.WriteContextImpl - Finished write.