easyExcel 中读取遇到的坑

查看 68|回复 2
作者:SlanWyf   
@Slf4j
public class test {
    public List employeeList;
    private final String fileName1="C:\\Users\\YiFan\\Desktop\\test1.xlsx";
    @Test
    public void testSimpleWrite() {
        log.info("路径: {}",fileName1);
        log.info("写入数据开始");
        EasyExcel.write(fileName1, Employee.class).sheet("模板").doWrite(SimpleWrite.data(200));
        log.info("写入数据结束");
    }
    @Test
    public void testSimpleRead() {
        log.info("路径: {}",fileName1);
        log.info("读数据开始");
        EasyExcel.read(fileName1, Employee.class,new PageReadListener(list -> employeeList=list)).sheet("模板").doRead();
        log.info("读数据结束");
        log.info("employeeList:{},size:{}",employeeList,employeeList.size());
    }
}
如代码所示,先写入两百行数据,此时打开 excel 是可以看到两百行数据的。但读取的时候只有一百行数据。如果初始化 employeeList ,往里面添加数据。则正常显示 200 行。所以请问是不是每次读取 100 行,所以后面的会覆盖掉前面的?

filename1, public, list, 写入

wuyiccc   
没错,PageReadListener 里面的 invoke 默认 BATCH_COUNT 是 100 , 会循环调用 invoke ,所以应该是 employeeList.addAll
wuyiccc   
invoke 里面 cachedDataList>=100 之后,才会调用 list -> employeeList=list
您需要登录后才可以回帖 登录 | 立即注册

返回顶部