使用maven构建项目
引入依赖
<dependencies>
<!-- apache的poi-->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
</dependency>
<!-- 阿里巴巴esayexcel -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>2.1.1</version>
</dependency>
</dependencies>
因为阿里巴巴开源的easyexcel是在apache的poi上做的升级封装,性能No1
实体类
package com.atguigu.eduservice.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
/**
* @Author YangXingChen
* @Date 2022/5/22 17:00
* @Version 1.0
*/
@Data
public class DemoData {
// 这里对于我们excel的表头,value对应表头,index表头的下标
@ExcelProperty(value = "学生编号",index = 0)
private Integer id;
@ExcelProperty(value = "学生姓名",index = 1)
private String name;
}
因为easyexcel读取文件是需要监听器的,我们直接复制监听器
固定代码,不要去背,会改就行了
package com.atguigu.eduservice.excel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.excel.metadata.CellData;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* @Author YangXingChen
* @Date 2022/5/22 17:34
* @Version 1.0
*/
//创建读取excel监听器
public class ExcelListener extends AnalysisEventListener<DemoData> {
//创建list集合封装最终的数据
List<DemoData> list = new ArrayList<>();
//一行一行去读取excle内容
@Override
public void invoke(DemoData demo, AnalysisContext analysisContext) {
// 打印当前一行数据对象
System.out.println("----"+demo);
// 存放进集合
list.add(demo);
}
//读取excel表头信息
@Override
public void invokeHead(Map<Integer, CellData> headMap, AnalysisContext context) {
System.out.println("表头信息:"+headMap);
}
//读取完成后执行
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
}
}
读取
package com.atguigu.eduservice.excel;
import com.alibaba.excel.EasyExcel;
import java.util.ArrayList;
import java.util.List;
/**
* @Author YangXingChen
* @Date 2022/5/22 17:00
* @Version 1.0
*/
public class Demo {
public static void main(String[] args) {
// 文件的路径
String fileName="D://笔记//writer.xls";
// 读取使用read方法读取,fileName:文件路径,DemoData.class:实体类对象,new ExcelListener():监听器对象,
EasyExcel.read(fileName,DemoData.class,new ExcelListener()).sheet().doRead();
}
}
![在这里插入图片描述](https://img-blog.csdnimg.cn/c83708ea4a144754a5b40eeeffbe76ac.png)
![在这里插入图片描述](https://img-blog.csdnimg.cn/53a4aba0b2494a32a12c6d2cdc3d2898.png)