alibaba / easyexcel

快速、简洁、解决大文件内存溢出的java处理Excel工具
https://easyexcel.opensource.alibaba.com
Apache License 2.0
32.09k stars 7.5k forks source link

忽略空行,却无法识别最后一行在哪里,会将数据后面的空行进行处理。 #4008

Closed szp0703 closed 4 days ago

szp0703 commented 1 week ago

建议先去看文档

设置ignoreEmptyRow(false)

触发场景描述

请求一个服务内部接口(该接口实现从阿里oss下载文件),会获得ResponseEntity<byte[]> 开启不忽略空行ignoreEmptyRow(false), 数据格式: 行1 111 行2 222 行3 333 行4 444 行5 555 行6-行10后面都是空行(以前有过填写,后面进行清空内容) 这时候我会校验这里有是否有空行,有就抛出异常,但是校验出行6一直到行10都是空行。 wps操作的清除内容不会校验出行6到行10是空行,office操作的清除内容会校验出。 删除行两个软件都不会校验出6到行10是空行

触发Bug的代码

ResponseEntity<byte[]> responseEntity = FeignClient() ByteArrayInputStream inputStream = new ByteArrayInputStream(responseEntity.getBody()); public void invoke(ImportTerminalDto importTerminalDto, AnalysisContext analysisContext) { // log.info("解析到第 {} 行数据: {}", rowIndex, importTerminalDto.getCode()); String data = String.valueOf(importTerminalDto.getCode()); rowIndex++; if ("null".equals(data) || data == null || data.trim().isEmpty()) { terminalNull.add(rowIndex); whetherRedis = false; }

提示的异常或者没有达到的效果

尾部空行没有进行过滤

youlingdada commented 4 days ago

这个和4009重复了,这边没有复现到,请提供一下原excel文件,这个先关闭了,重复的issue