Closed bob798 closed 3 years ago
Office是如下定义空行的
not contains any filled, font, border, formatted or value
如果使用Del删除了9行单元格的值,Office有可能还保留了样式等其它信息,你可以试试点左侧的行编号->删除选中行试试看,或者像你做的那样,使用业务主键来判断。
ExcelReader.read(Paths.get("abc.xlsx")).sheets().flatMap(Sheet::rows).filter(row -> isNotEmpty(row.getString(0))).forEach(System.out::println);
需要注意的是row.getString下标是从0开始的
当从文件A复制10行到文件B,然后删除文件B中的后9行。 这时文件B,只有第一行肉眼可见,但读取时后就并不为空。
我的解决办法:如果当前row的第一个及第二个单元格均为空,既getString(1).isBlank == true,我就直接跳过。