Skip to content

[Bug] 读取 Excel 所有Sheet前多少行时,超过后不会触发第二个sheet的读取。 #937

Description

@yhy949

Search before asking

  • I searched in the issues and found nothing similar.

Fesod version

2.0.1-incubating

JDK version

25

Operating system

win11

Steps To Reproduce

try (ExcelReader reader = FesodSheet.read(Files.newInputStream(filePath), preDataListener)
                .readCache(new MapCache())
                .password(password).headRowNumber(0).excelType(excelTypeEnum)
                .autoTrim(true).charset(charset).registerConverter(new Str2NullConverter())
                .registerConverter(new DateNumberConverter()).build()) {
            ReadWorkbookHolder readWorkbookHolder = reader.analysisContext().readWorkbookHolder();
            // 判断只有 csv 才需要修改配置信息
            if (readWorkbookHolder instanceof CsvReadWorkbookHolder csvReadWorkbookHolder) {
                // 底层读取 csv 用的是 apache 的 common-csv,所以设置 CsvFormat 即可
                csvReadWorkbookHolder.setCsvFormat(CSVFormat.DEFAULT.builder().setDelimiter(delimiter).get());
            }
            // 为每个 sheet 创建 ReadSheet 并设置 limit(2000)
            List<ReadSheet> readSheets = reader.excelExecutor().sheetList().stream()
                    .peek(sheet ->sheet.setNumRows(2000)).toList();
            // 开始解析所有工作表
            //reader.readAll();
            for (ReadSheet readSheet : readSheets) {
                reader.read(readSheet);
            }
        } catch (Exception e) {}

Current Behavior

1、使用reader.readAll(); 不会触发第二个sheet读取
2、使用遍历sheet方式读取,不会执行readListener。疑似在第98行处,获取到的还是上一个sheet的。计算getRowIndex还是 上一个sheet index+1

Image

Expected Behavior

多个sheet正常限制读取数量

Anything else?

No response

Are you willing to submit a PR?

  • I'm willing to submit a PR!

Metadata

Metadata

Assignees

No one assigned

    Labels

    bugSomething isn't working

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions