开发者学堂课程【微服务+全栈在线教育实战项目演练(SpringCloud Alibaba+SpringBoot):技术点-EasyExcel 实现读操作】学习笔记,与课程紧密连接,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/667/detail/11356
技术点-EasyExcel 实现读操作
内容介绍
一、创建实体类
二、创建读取操作的监听器
三、进行读操作步骤
一、创建实体类
import com. alibaba . excel.annotation.ExcelProperty;
public class ReadData {
//设置列对应的属性
@ExcelProperty(index . 0)
private int sid;
//设置列对应的属性
@ExcelProperty(index .1)
private String sname;
publlc int getSid()
freturn sid;
}
public vold setSid(int sid) {
this.sid = sid;
}
public String getSname() {
return sname;
public void setSname(String sname){
this.sname . sname;
}
@Qverride
public String toString() (
return "ReadData{" +
"sid-"+ sid +
',sname='"+sname+'/''+
"}"
二,创建读取操作的监听器
import com.allbaba. excel .context .AnalysisContext;
import cam. allbaba.excel. event . AnalysisEventListener;import com.alibaba. excel . exceptlon. ExcelDataConyertException;import com.sun scenario.effect.impl.sw.sse.SSEBIend SRC _OUTPeer;
import java.utll.ArrayLst;
import java .utll.Llst;
import java.utll.Map;
//创建读取 excel 监听器public class ExcelListener extends AnalyslsEventListener<ReadDatay> {
//创建1st 集合封装最终的数据
List<ReadData> list - new ArrayList<ReadData>{
//一行一行去读取 excle 内容
@Overridepublic void invoke (ReadData user,AnalysisContext analysisContext){
System.out. println("***"+user);
list. add(user);
//读取 excel 表头信息
@Override
public void invokeHeadMap(Map<Integer,String> headMap,
AnalysisContext context){
System.out.println("表头信息:“+headMap);
}
//读取完成后执行
@Override
PublicvoiddoAfterAllAnalysed(AnalysisContextanalysisContext){
}
调用实现最终的读取
public static void main(Stringl] args) thraws Exception {
// 写法1:
String fileName-"F:\1e1.xlsx";
// 这里 需要指定读用哪个 class 去读,然后读取第一个sheet文件流会自动关闭EasyExcel.read(flleName,ReadData.class,newExcelListener()).sheet().doRead);
// 写法2:
InputStreamin-newBufferedInputStream(new FileInputStream("F:\\01.xlsx"));
ExcelReader excelResden-EasyExcel.read(in, ReadData.cless, ne ircellistener()).build();ReadSheet readSheet = EasyExcel.readSheet(0).build(); excelReader.read(readSheet);
//这里千万别忘记关闭,读的时候会创建临时文件,到时磁盘会崩的 excelReader.finish();
三,进行读操作步骤
第一步创建和 excel 对应实体类,标记对应列关系
@Datd
public class DemoData{
//设置 excel 表头名称
@ExcelProperty(value="学生编号"jndex=0)
private Integer sno.
@ExcelPropertyivalue="学生姓名"jndex=1)
private String sname.
}
//一行一行读取excel内容
@Override Public void invoke(DemoData data, AnalysisContext analysisContext){
System.out.println("****"+data);
}
//读取表头内容
@Overridepublic void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context){
System.out.println("表头:"+headMap)
}
//读取完成之后
@Override
publicvoiddoafterAllAnalysed(AnalysisContext analysisContext) { }
第三步 最终方法调用 实现excel读操作
String filename =“F:\\write.xlsx":EasyExcel.read(filename,DemoData.class,new ExcelListener()).sheet0).doRead()