模拟您的环境运行结果
你模拟的环境效果和你描述的一样
ThirdBaseCustomerUploadPO{owner2='H1', owner1='H2', owner3='H3'}
ThirdBaseCustomerUploadPO{owner2='11', owner1='22', owner3='33'}
ThirdBaseCustomerUploadPO{owner2='11', owner1='22', owner3='33'}
你的脆弱
当我观察你的代码时,在你的代码行中,你选择了索引为0的工作表,标题列中的行数为2。
}).sheet(0).headRowNumber(2).doRead();
您提供的 Excel 文档
货主 |
客户名称 |
客户编码 |
客户名称 |
客户分类 |
采购类别 |
企业法人 |
1 |
2 |
3 |
4 |
5 |
6 |
7 |
我发现您的标题列位于第一行您应该将代码更改为
}).sheet(0).headRowNumber(1).doRead();
输出结果:
ThirdBaseCustomerUploadPO{owner2='22', owner1='11', owner3='33'}
ThirdBaseCustomerUploadPO{owner2='22', owner1='11', owner3='33'}
我的修正数据
我的 Excel 文件
H1 |
氢2 |
H3 |
11 |
22 号 |
33 |
11 |
22 号 |
33 |
11 |
22 号 |
33 |
我的代码
public static void main(String[] args) throws IOException {
File file = new File("/Users/yangyida/Downloads/Book1.xlsx");
EasyExcel.read(Files.newInputStream(file.toPath()), ThirdBaseCustomerUploadPO.class, new AnalysisEventListener<ThirdBaseCustomerUploadPO>() {
@Override
public void invoke(ThirdBaseCustomerUploadPO data, AnalysisContext context) {
System.out.println(data);
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
}
}).sheet(0).headRowNumber(1).doRead();
}
修正后的输出结果
ThirdBaseCustomerUploadPO{owner2='22', owner1='11', owner3='33'}
ThirdBaseCustomerUploadPO{owner2='22', owner1='11', owner3='33'}
祝您生活愉快