easyexcel读取两个不同表头的sheet的数据
时间: 2024-03-12 21:45:34 浏览: 56
两个表中查询出不同的数据
如果两个不同的sheet有不同的表头,可以使用`@ExcelProperty`注解来标记表头所对应的字段,然后在读取数据的时候,根据不同的sheet来使用不同的Java对象来接收数据。
示例代码如下:
先定义两个Java对象,分别对应两个不同的sheet:
```java
public class Sheet1Data {
@ExcelProperty("姓名")
private String name;
@ExcelProperty("年龄")
private Integer age;
// 省略getter和setter
}
public class Sheet2Data {
@ExcelProperty("名称")
private String name;
@ExcelProperty("数量")
private Integer count;
// 省略getter和setter
}
```
然后在读取Excel的时候,使用`EasyExcel.read()`方法,并根据不同的sheet使用不同的Java对象来接收数据:
```java
public void readExcel(String fileName) {
EasyExcel.read(fileName, new Sheet1DataListener())
.sheet(0)
.doRead();
EasyExcel.read(fileName, new Sheet2DataListener())
.sheet(1)
.doRead();
}
public class Sheet1DataListener extends AnalysisEventListener<Sheet1Data> {
@Override
public void invoke(Sheet1Data data, AnalysisContext context) {
// 处理sheet1的数据
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
// 数据处理完成后的操作
}
}
public class Sheet2DataListener extends AnalysisEventListener<Sheet2Data> {
@Override
public void invoke(Sheet2Data data, AnalysisContext context) {
// 处理sheet2的数据
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
// 数据处理完成后的操作
}
}
```
这样就可以读取两个不同表头的sheet的数据了。
阅读全文