[alibaba/easyexcel]使用EasyExcel.read(InputStream inputStream, Class head, ReadListener readListener);方法时出现异常

2024-05-21 580 views
7

触发场景描述 在使用EasyExcel.read(InputStream inputStream, Class head, ReadListener readListener);时从OSS上下载excel大小超过1MB进行流读取时出现异常如下: image 很明显可以看出来是因为未能获取到excelType这个时候我给ExcelReaderSheetBuilder设置excelType时又出现其他异常如下: image

触发Bug的代码

未设置excelType代码
`            
EasyExcel.read(ossObject.getObjectContent(), GiftCodeBO.class,
                    new ExcelGiftCodeListener(giftImportMessage.getGiftId(), btGiftCodeService, batch, password,
                            redisTemplate, msgId)).sheet().doRead();`
设置excelType代码
`            EasyExcel.read(ossObject.getObjectContent(), GiftCodeBO.class,
                    new ExcelGiftCodeListener(giftImportMessage.getGiftId(), btGiftCodeService, batch, password,
                            redisTemplate, msgId)).excelType(giftImportMessage.getFileName().contains(ExcelTypeEnum.XLSX.getValue()) ? ExcelTypeEnum.XLSX
                            : ExcelTypeEnum.XLS).sheet().doRead();`

提示的异常或者没有达到的效果 未能从OSS上下载超过大小为1MB的excel中读取数据。 希望有大佬能够回复,万分感谢

回答

7

文件格式为xlsx

6

请问这个问题解决了吗?

6

临时方案:将xlsx文件替换成xls文件类型

4

贴全异常。大概率你读取的文件 不完整。

9

刚刚解决 可能是你的inputstream流重复利用了 解决方法:每次使用inputstream流都要重新获取新的