目录
一、依赖
引入EasyExcel pom 文件和 poi 原始的 Excel 导出、导入的 pom,因为 EasyExcel 是在基础之上进行了封装
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.1.1</version>
</dependency>
<!--xls-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.17</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.17</version>
</dependency>
二、创建实体类
主要用来设置Excel 存储数据的类型和表头
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
/**
* @description: Excel到处实体类
* @author: zzx
* @createDate: 2020/6/9
* @version: 1.0
*/
@Data
public class DemoData {
//此注解主要用来设置 Excel 的表头
@ExcelProperty("学生编号")
private Integer sno;
@ExcelProperty("学生姓名")
private String sname;
}
三、Excel 写操作
通过 EasyExcel.write 方法完成数据的写操作
import com.alibaba.excel.EasyExcel;
import com.edu.eduservice.entity.DemoData;
import com.edu.eduservice.entity.EduTeacher;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
/**
* @description:
* @author: zzx
* @createDate: 2020/6/1
* @version: 1.0
*/
public class Test {
@org.junit.Test
public void test(){
//1、设置写入文件夹地址和Excel文件名称
String filename = "E:\\Project\\write.xlsx";
//2、造数据
DemoData demoData = new DemoData();
demoData.setSno(1);
demoData.setSname("zzx");
List<DemoData> list = Arrays.asList(demoData);
//3、调用 easyExcel 中的write 方法写数据
EasyExcel.write(filename, DemoData.class).sheet("学生列表").doWrite(list);
}
}
四、Excel 读操作
【1】创建和 Excel 对应实体类,标记对应关系
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
/**
* @description: Excel到处实体类
* @author: zzx
* @createDate: 2020/6/9
* @version: 1.0
*/
@Data
public class DemoData {
//此注解主要用来设置 Excel 的表头
@ExcelProperty(value = "学生编号",index = 0)
private Integer sno;
@ExcelProperty(value ="学生姓名",index = 1)
private String sname;
}
【2】创建监听进行 excel 文件读取
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import java.util.Map;
/**
* @description:
* @author: zzx
* @createDate: 2020/6/9
* @version: 1.0
*/
public class ExcelListener extends AnalysisEventListener<DemoData> {
//一行一行读取excel内容
@Override
public void invoke(DemoData data, AnalysisContext analysisContext) {
System.out.println("****"+data);
}
//读取表头内容
public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
System.out.println("表头:"+headMap);
}
//读取完成之后
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) { }
}
【3】通过 EasyExcel.read读取数据
package com.test.datasource;
import com.alibaba.excel.EasyExcel;
import com.edu.eduservice.entity.DemoData;
import com.edu.eduservice.entity.ExcelListener;
/**
* @description:
* @author: zzx
* @createDate: 2020/6/1
* @version: 1.0
*/
public class Test {
@org.junit.Test
public void test(){
//1、设置写入文件夹地址和Excel文件名称
String filename = "E:\\Project\\write.xlsx";
//2、Excel 读取操作
EasyExcel.read(filename,DemoData.class,new ExcelListener()).sheet().doRead();
}
}
【4】测试结果
----架构师资料,关注公众号获取----