EasyExcel读取sheet教程

4,264 阅读1分钟

首先说明下 ,EasyExcel和 EasyExcelFactory没有区别是一样。

public class EasyExcel extends EasyExcelFactory {}
  1. 如果excel文件只有一个sheet
  • 同步获取返回值
//构建一个EasyExcelBuilder对象
//EasyExcel.read()入参有很多,本例子使用inputStream
ExcelReaderBuilder reader = EasyExcel.read(inputStream);

Class<T> clazz = null; //clazz 是 excel对应的实体类
List<T> data = reader.sheet(0).head(clazz).doReadSync();

//别忘了关闭
reader.finish();
  • 异步获取返回值
 需要做类型转化,或者定制输出的时候,才需要用异步,实现readListener,
 作者觉得麻烦,略过

2.excel文件中多个sheet的读取

  • 同步读取
//构建一个ExcelReader对象
//EasyExcel.read()入参有很多,本例子使用inputStream
ExcelReader reader = EasyExcel.read(inputStream).build();

SyncReadListener sheet0Listener = new SyncReadListener();
SyncReadListener sheet1Listener = new SyncReadListener();

ReadSheet sheet0 = EasyExcel.readSheet(0).head(AnalysisResult.class).registerReadListener(sheet0Listener).build();
        ReadSheet sheet1 = EasyExcel.readSheet(1).head(ExceptionData.class).registerReadListener(sheet1Listener).build();

//读取sheet
reader.read(sheet0, sheet1);

List<Object> list = sheet0Listener.getList();
List<Object> list1 = sheet1Listener.getList();

//关闭
reader.finish();
  • 异步读取
需要做类型转化,或者定制输出的时候,才需要用异步,实现readListener,
作者觉得麻烦,略过。