当前位置: 首页 > 后端技术 > Java

easyexcel读取

时间:2023-04-01 18:02:43 Java

1.importpomcom.alibabaeasyexcel2.2.6读取//优点,不是整个文件读取读取,但按行读取publicstaticvoidmain(String[]args){ExcelReaderBuilderread=EasyExcel.read();//获取文件read.file("");//读取的sheet没有指定默认读取所有sheet页面read.sheet("UserInputSheet");//自动关闭流read.autoCloseStream(true);//设置文件格式read.excelType(ExcelTypeEnum.XLSX);//注册监听器read.registerReadListener(newAnalysisEventListener(){//读取一行后回调o表示当前行数据@Overridepublicvoidinvoke(Objecto,AnalysisContextanalysisContext){System.out.println(o);}//文件数据读取结束回调@OverridepublicvoiddoAfterAllAnalysed(AnalysisContextanalysisContext){System.out.println("数据读取完毕。");}});//构建阅读器ExcelReaderbuild=read.build();//读取数据build.readAll();//读取完成build.finish();}3。泛型使用//优势,不是读取整个文件,而是逐行读取publicstaticvoidmain(String[]args){ExcelReaderBuilderread=EasyExcel.read();//获取文件read.file("F:\\easyexcel.xlsx");//待读sheet不指定默认读所有sheet页面read.sheet("StudentSheet");//自动关闭Streamread.autoCloseStream(true);//设置文件格式read.excelType(ExcelTypeEnum.XLSX);//注册监听器read.registerReadListener(newAnalysisEventListener>(){//一行读取完成然后回调o表示当前行数据@Overridepublicvoidinvoke(Mapmap,AnalysisContextanalysisContext){//System.out.println(map);Iteratoriterator=map.keySet().iterator();while(iterator.hasNext()){整数next=iterator.next();System.out.print(next+":"+map.get(next)+',');}System.out.println("");}//读取文件数据时的回调@OverridepublicvoiddoAfterAllAnalysed(AnalysisContextanalysisContext){System.out.println("Dataisread.");}});//构建阅读器ExcelReaderbuild=read.build();//读取数据build.readAll();//读完build.finish();}4。简化包com.chinasoft.easyexcel;importcom.alibaba.excel.EasyExcel;importcom.alibaba.excel.context.AnalysisContext;importcom.alibaba.excel.event.AnalysisEventListener;importjava.util.Iterator;import的使用java.util.LinkedList;导入java.util.List;导入java.util.Map;公共类MyEasyExcel2{publicstaticvoidmain(String[]args){List>list=newLinkedList<>();EasyExcel.read("F:\\easyexcel.xlsx").sheet("学生表").registerReadListener(newAnalysisEventListener>(){@Overridepublicvoidinvoke(Mapmap,AnalysisContextanalysisContext){list.add(map);//如果数据量过大,仍然可能存在内存泄漏}@OverridepublicvoiddoAfterAllAnalysed(AnalysisContextanalysisContext){System.out.println("The数据已被读取。");}}).doRead();for(Mapmap:list){Iteratoriterator=map.keySet().iterator();while(iterator.hasNext()){整数next=iterator.next();System.out.print(next+":"+map.get(next)+',');}系统.out.println("");}}}5.对象类封装com.chinasoft.easyexcel;importcom.alibaba.excel.EasyExcel;importcom.alibaba.excel.context.AnalysisContext;importcom.alibaba.excel.event.AnalysisEventListener;importcom.chinasoft.easyexcel.entity.ExcelEntity;导入java.util.LinkedList;导入java.util.List;公共类MyEasyExcel3{publicstaticvoidmain(String[]args){Listlist=newLinkedList<>();EasyExcel.read("F:\\easyexcel.xlsx").head(ExcelEntity.class).sheet("学生表").registerReadListener(newAnalysisEventListener(){@Overridepublicvoidinvoke(ExcelEntityentity,AnalysisContextanalysisContext){list.add(entity);//如果数据量过大,还有可能泄露}@OverridepublicvoiddoAfterAllAnalysed(AnalysisContextanalysisContext){System.out.println("数据已读取。");}}).doRead();for(ExcelEntityentity:list){System.out.println(entity);}}}实体类包com.chinasoft.easyexcel.entity;importcom.alibaba.excel.annotation.ExcelProperty;importlombok.Data;@DatapublicclassExcelEntity{@ExcelProperty(value="Number")privateStringid;@ExcelProperty(value="Name")privateStringname;@ExcelProperty(value="age")privateIntegerage;@ExcelProperty(value="zodiac")privateStringshen;@ExcelProperty(value="school")privateStringschool;@ExcelProperty(value="grade")privateIntegerscore;}对应的excel代码截图