easyexcel 读取指定行数据_【easyexcel】读取excel文件

该博客介绍了如何使用EasyExcel库读取Excel文件中的指定行数据。通过创建`ExcelListener`,设置解析的Sheet类,并使用`ExcelReader`进行读取操作。示例代码展示了如何从文件中读取数据并将其转换为User对象列表。
摘要由CSDN通过智能技术生成

packagecom.harara.easyexcel.read;importcom.alibaba.excel.ExcelReader;importcom.alibaba.excel.event.AnalysisEventListener;importcom.alibaba.excel.metadata.BaseRowModel;importcom.alibaba.excel.metadata.Sheet;importcom.alibaba.excel.support.ExcelTypeEnum;importcom.harara.model.User;importjava.io.File;importjava.io.FileInputStream;importjava.io.InputStream;importjava.util.ArrayList;importjava.util.List;/***@author: harara

*@version: 2.0

* @date : 2020/6/10 9:41*/

public classExcelReadTest {public List read(String filename, Class rowModel) throwsException{

ExcelListener excelListener= newExcelListener();

ExcelReader excelReader= getExcelReader(new File(filename),excelListener,true);if(excelReader == null){return newArrayList();

}for(Sheet sheet:excelReader.getSheets()){

sheet.setClazz(rowModel);

excelReader.read(sheet);

}

List list = new ArrayList<>();for(Object obj:excelListener.getDataList()){

list.add((T)obj);

}returnlist;

}/***

*@paramin 文件输入流

*@paramcustomContent 自定义模型可以在AnalysisContext中获取用于监听者回调使用

*@parameventListener 用户监听

*@paramtrim 是否对解析的String做trim()默认true,用于防止excel中空格引起的装换报错

*@return

*/

public staticExcelReader getExcelReader(File file,

AnalysisEventListener eventListener,boolean trim) throwsException{

String fileName=file.getName();if (fileName == null) {throw new Exception("文件格式错误!");

}if (!fileName.toLowerCase().endsWith(ExcelTypeEnum.XLS.getValue()) && !fileName.toLowerCase().endsWith(ExcelTypeEnum.XLSX.getValue())) {throw new Exception("文件格式错误!");

}

InputStream inputStream= null;try{

inputStream= newFileInputStream(file);if(fileName.toLowerCase().endsWith(ExcelTypeEnum.XLS.getValue())) {return new ExcelReader(inputStream, ExcelTypeEnum.XLS, null, eventListener, false);

}else{return new ExcelReader(inputStream, ExcelTypeEnum.XLSX, null, eventListener, false);

}

}catch(Exception e){

e.printStackTrace();return null;

}

}public static voidmain(String[] args) {

ExcelReadTest excelReadTest= newExcelReadTest();try{

List users = excelReadTest.read("excelByModel.xlsx", User.class);

System.out.println(users);

System.out.println("读取完成");

}catch(Exception e){

e.printStackTrace();

}

}

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值