引入依赖
org.apache.poi poi-ooxml com.alibaba easyexcel 2.1.1
因为阿里巴巴开源的easyexcel是在apache的poi上做的升级封装,性能No1
实体类package com.atguigu.eduservice.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
@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; //创建读取excel监听器 public class ExcelListener extends AnalysisEventListener读取{ //创建list集合封装最终的数据 List 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 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;
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();
}
}



