2.导入依赖(在pom中导入)
<!-- poi -->
<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>
<!-- easyexcel -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.1.1</version>
</dependency>
3.创建一个实体类(User)
package com.huyi.easyexcel.pojo;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
/**
* @HeadRowHeight(int):设置表头高度(与 @ContentRowHeight 相反)标记在类上
* @ColumnWidth(int):设置列宽标记在属性上
* @ExcelProperty("String") 是标题
* @ColumnWidth(value = 20) 宽度 value:宽度大小
* @ContentRowHeight(int):设置 row 高度,不包含表头标记在 类上
*/
public class User {
@ExcelProperty(value ="用户ID",index = 0)
private Long userId;
@ExcelProperty(value ="用户名",index = 1)
private String userName;
@ExcelProperty(value ="用户密码",index = 2)
private String passWord;
@ExcelProperty(value ="用户邮箱",index = 3)
private String email;
public Long getUserId() {
return userId;
}
public void setUserId(Long userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassWord() {
return passWord;
}
public void setPassWord(String passWord) {
this.passWord = passWord;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public User(Long userId, String userName, String passWord, String email) {
this.userId = userId;
this.userName = userName;
this.passWord = passWord;
this.email = email;
}
public User() {
}
}
4.创建一个监听器继承AnalysisEventListener
package com.huyi.easyexcel.listenter;
import java.util.Map;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.huyi.easyexcel.pojo.User;
public class ReadListenter extends AnalysisEventListener<User>{
/**
* 读取表头
*
* @param Map<Integer, String> 表头内容
* @param AnalysisContext 读取合并单元格
*/
public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
System.err.println(headMap);
}
/**
* 一行一行的读取
* @param User 实体类
* @param AnalysisContext 读取合并单元格
*/
@Override
public void invoke(User data, AnalysisContext context) {
// TODO Auto-generated method stub
System.err.println(data.getUserId()+""+data.getUserName()+""+data.getPassWord()+""+data.getEmail());
}
/**
* 读取完成后要做的事
* @param AnalysisContext 读取合并单元格
*/
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
// TODO Auto-generated method stub
}
}
5.在项目的test中测试
package com.huyi.easyexcel;
import org.junit.jupiter.api.Test;
import org.springframework.boot.test.context.SpringBootTest;
import com.alibaba.excel.EasyExcel;
import com.huyi.easyexcel.listenter.ReadListenter;
import com.huyi.easyexcel.pojo.User;
@SpringBootTest
class EasyexcelApplicationTests {
@Test
void testRead(){
// 读取excel的位置
String fileName = "E:\\test.xlsx";
/**
* fileName 读取excel的位置
* User.class 实体类
* new ExcelListenter() 监听器
*/
EasyExcel.read(fileName, User.class,new ReadListenter()).sheet().doRead();
}
}
6.运行结果如下