easyexcel导入 封装一个工具类
时间: 2023-09-08 09:14:38 浏览: 185
好的,以下是一个简单的封装了EasyExcel导入功能的工具类:
```
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.io.File;
import java.util.List;
/**
* EasyExcel导入工具类
*/
public class EasyExcelImportUtil {
private static final Logger LOGGER = LoggerFactory.getLogger(EasyExcelImportUtil.class);
/**
* 导入Excel并返回数据列表
*
* @param file Excel文件
* @param clazz 数据类型
* @param <T> 泛型
* @return 数据列表
*/
public static <T> List<T> importExcel(File file, Class<T> clazz) {
ExcelDataListener<T> listener = new ExcelDataListener<>();
EasyExcel.read(file, clazz, listener).sheet().doRead();
return listener.getDataList();
}
/**
* Excel数据监听器
*
* @param <T> 数据类型
*/
private static class ExcelDataListener<T> extends AnalysisEventListener<T> {
private final Logger logger = LoggerFactory.getLogger(this.getClass());
private final List<T> dataList = Lists.newArrayList();
/**
* 读取Excel数据并处理
*
* @param data 数据
* @param context 上下文
*/
@Override
public void invoke(T data, AnalysisContext context) {
dataList.add(data);
}
/**
* 读取完成后的操作
*
* @param context 上下文
*/
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
logger.info("Excel import finished, total size: {}", dataList.size());
}
public List<T> getDataList() {
return dataList;
}
}
}
```
使用方法很简单,只需要调用`EasyExcelImportUtil.importExcel(file, clazz)`方法即可,其中`file`为Excel文件,`clazz`为导入数据的类型。在导入完成后,会返回一个数据列表。
阅读全文
相关推荐
















