Skip to content
This repository was archived by the owner on Sep 4, 2025. It is now read-only.
This repository was archived by the owner on Sep 4, 2025. It is now read-only.

漏读第一行(标题行下一行)的问题 #4031

@reptay1110

Description

@reptay1110

触发场景描述

在我使用EasyExcel进行某个文档处理时,漏读了第一行数据(标题行的下一行)

触发Bug的代码

Test.java

   public class Test {
    @org.junit.Test
    public void testEasy() throws IOException {
           //文件附在最后
            String url="";
            //遍历申请附件
            ScheduleForOnlineListener listener=new ScheduleForOnlineListener();
            //根据type选择对应的类
            EasyExcel.read(new File(url), ScheduleForOnline.class, listener)
                    .sheet()
                    .headRowNumber(3)
                    .doRead();
            List<ScheduleForOnline> dataList=listener.getDataList();
            System.out.println(dataList);
        }
   }

ScheduleForOnline.java

@Data
public class ScheduleForOnline {
    @ExcelProperty("序号")
    private String order;
    @ExcelProperty("单位名称")
    private String trainingInstitutionName;
    @ExcelProperty("统一机构代码")
    private String unifiedInstitutionCode;
    @ExcelProperty("项目类别")
    private String projectCategory;
    @ExcelProperty("项目名称")
    private String projectName;
    @ExcelProperty("初审不合格人数")
    private Integer initialReviewNotPassCount;
    @ExcelProperty("初审通过人数")
    private Integer initialReviewPassCount;
    @ExcelProperty("补贴标准(元)")
    private Integer subsidyStandard;
    @ExcelProperty("初审金额(元)")
    private Double initialReviewAmount;
    @ExcelProperty("开户银行")
    private String bank;
    @ExcelProperty("银行基本户账号")
    private String bankAccount;
}

ScheduleForOnlineListener.java

public class ScheduleForOnlineListener implements ReadListener<ScheduleForOnline> {

    @Getter
    private List<ScheduleForOnline> dataList = new ArrayList<>();
    private boolean foundTotal = false;

    @Override
    public void invoke(ScheduleForOnline data, AnalysisContext context) {
        if (data.getOrder() != null && data.getOrder().contains("合计")) {
            foundTotal = true;
            return;
        }
        dataList.add(data);
    }

    @Override
    public void onException(Exception e, AnalysisContext analysisContext) throws Exception {
        // Handle exception
    }

    @Override
    public void invokeHead(Map<Integer, ReadCellData<?>> map, AnalysisContext analysisContext) {
        // Handle header row
    }

    @Override
    public void extra(CellExtra cellExtra, AnalysisContext analysisContext) {
        // Handle extra cell data
    }

    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
        // Handle after all data is analyzed
    }

    @Override
    public boolean hasNext(AnalysisContext analysisContext) {
        return !foundTotal;
    }
}

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

文件:
e90f8254-ffb1-48f9-b7d9-fd7dd370347f_20241017105407A001.xls

单位11在文件中出现,但是并没有读取到:
原来的文件中
PixPin_2024-10-23_15-41-22
实际读取到的缺少单位11
PixPin_2024-10-23_15-42-40

Metadata

Metadata

Assignees

Labels

bugSomething isn't working

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions