public static <T> void importExcel(InputStream inputStream, Class<T> cls, Consumer<List<T>> service) {
EasyExcel.read(inputStream, cls, new AnalysisEventListener() {
private static final int BATCH_COUNT = 3000;
List list = new ArrayList();
@Override
public void invoke(Object data, AnalysisContext context) {
list.add(data);
if (list.size() >= BATCH_COUNT) {
service.accept(list);
list.clear();
}
}
@Async
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
service.accept(list);
}
}).sheet().doRead();
}