目录
首先在pom文件引入依赖
<dependencies>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.0.5</version>
</dependency>
</dependencies>
后台代码实现导出excel文件到指定目录(导出)
先建一个dog类
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class Dog {
// index 表示这个属性是在excel的第几列(从0开始),value 表示在当前列的表头名称
@ExcelProperty("狗编号")
private Integer dogNo;
@ExcelProperty("狗名称")
private String dogName;
@ExcelProperty("狗年龄")
private Integer dogAge;
}
然后测试类
import com.alibaba.excel.EasyExcel;
import java.util.List;
import java.util.stream.Collectors;
import java.util.stream.Stream;
public class Client {
public static void main(String[] args) {
//写入的路径
String fileName = "D:\Dog.xlsx";
EasyExcel.write(fileName,Dog.class).sheet("狗").doWrite(getLists());
}
//模仿从后台拿到一个Dog对象的集合 (我生成了5个一样的dog狗)
public static List<Dog> getLists(){
return Stream.generate(()->new Dog(2,"阿花",28)).limit(5).collect(Collectors.toList());
}
}
运行之后会看到路径下有个Dog.xlsx文件,效果如下:
后台代码实现读指定目录的excel文件(导入)
创建EasyListener类
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import java.util.Map;
public class EasyListener extends AnalysisEventListener<Dog> {
//一行一行读取excel内容
@Override
public void invoke(Dog dog, AnalysisContext analysisContext) {
System.out.println("数据"+dog);
}
//读取表头内容
@Override
public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
System.out.println("表头:"+headMap);
}
//读取完之后
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
System.out.println("我读完了");
}
}
测试类代码:
public class Client {
public static void main(String[] args) {
//写入的路径
String fileName = "D:\Dog.xlsx";
// EasyExcel.write(fileName,Dog.class).sheet("狗").doWrite(getLists());
EasyExcel.read(fileName,Dog.class,new EasyListener()).sheet("狗").doRead();
}
//模仿从后台拿到一个Dog对象的集合 (我生成了5个一样的dog狗)
public static List<Dog> getLists(){
return Stream.generate(()->new Dog(2,"阿花",28)).limit(5).collect(Collectors.toList());
}
}
输出结果如下: