Easyexcel多sheet导出数据延迟为空

【记录踩过的坑】~~~~~~~~~

需求是,一批数据多sheet导出,因为不确定数据大小,无法让前端用流接,只能上传至oss,给前端返回地址下载;

ExcelWriter excelWriter = EasyExcel.write(out, EncodingExcelVO.class).build();
            //单个sheet数量5000,超出则分多个sheet
            if (lists.size() > Constant.EXCEL_SHEET_MAX_ROWS) {
                List<List<EncodingExcelVO>> split1 = CollUtil.split(lists, Constant.EXCEL_SHEET_MAX_ROWS);

                for (int i = 0; i < split1.size(); i++) {
                    WriteSheet writeSheet = EasyExcel.writerSheet("模板" + i).build();
                    excelWriter.write(split1.get(i), writeSheet);
                }

            } else {
                EasyExcel.write(out, EncodingExcelVO.class).sheet("模板").doWrite(lists);
            }

单次如果大于5000(根据自己需求设置)我是分个sheet导出的,但是发现一个问题,5000以下直接导出没有问题,数据能正常显示,一但超过5000,本地文件就显示为空,得过一会儿才能显示数据。但是这个时间是不确定得。就导致上传到oss是个空文件。

原因:一批数据导出到同一个sheet,会自己等流完成后关闭,但是多个sheet不会自己去flush()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值