listener监听器不能使用spring管理,所以service需要作为参数传入listener
@Test
public void easyExcelWriteTest(){
String fileName = PATH + System.currentTimeMillis() + ".xlsx";
EasyExcel.write(fileName, DemoData.class).sheet("easyTest").doWrite(data());
}
//easyExcel造数,写入excel
private List data() {
List list = new ArrayList();
for (int i = 0; i < 10; i++) {
DemoData data = new DemoData();
data.setString("字符串" + i);
data.setDate(new Date());
data.setDoubleData(0.56);
list.add(data);
}
return list;
}
@Test
public void easyExcelReadTest(){
String fileName = PATH + "1647333641151.xlsx";
EasyExcel.read(fileName, DemoData.class,new DemoDataListener()).sheet("easyTest").doRead();
}
@Slf4j public class DemoDataListener extends AnalysisEventListener{ private static final int BATCH_COUNT = 5; List list = new ArrayList (); public DemoDataListener(){ System.out.println("1111"); } @Override public void invoke(DemoData data, AnalysisContext context) { list.add(data); if (list.size() > BATCH_COUNT){ saveDate(); list.clear(); } } @Override public void doAfterAllAnalysed(AnalysisContext context) { saveDate(); } private void saveDate(){ System.out.println(list); } }
getFields():获得某个类的所有的公共(public)的字段,包括父类中的字段。
getDeclaredFields():获得某个类的所有声明的字段,即包括public、private和proteced,但是不包括父类的申明字段。
getDeclaredMethod:获取当前类的所有声明的方法,包括public、protected和private修饰的方法。需要注意的是,这些方法一定是在当前类中声明的,从父类中继承的不算,实现接口的方法由于有声明所以包括在内。
getMethod:获取当前类和父类的所有public的方法。这里的父类,指的是继承层次中的所有父类。比如说,A继承B,B继承C,那么B和C都属于A的父类。
getDeclaredConstructors() 的返回所有类型的构造器,包括public和非public
getConstructors() 只返回public。



