普通的excel列表,easyexcel读取是没有什么问题的。但是,如果有合并单元格,那么它读取的时候,能获取数据,但是数据是不完整的。如下所示的单元格数据:
我们通过简单的异步读取,最后查看数据内容:
ExcelData.java
package com.example.model;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@Data
@AllArgsConstructor
@NoArgsConstructor
public class ExcelData {
@ExcelProperty("学生姓名")
private String name;
@ExcelProperty("年龄")
private int age;
@ExcelProperty("性别")
private String gender;
@ExcelProperty({"课程", "课程名称"})
private String courseName;
@ExcelProperty({"课程", "分数"})
private double score;
}
ExcelRead.java
package com.example.service;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.example.model.ExcelData;
import lombok.extern.slf4j.Slf4j;
import java.util.ArrayList;
import java.util.List;
@Slf4j
public class ExcelRead {
private static final String FILEPATH = "e:\\test\\student.xlsx";
public List<ExcelData> list() {
List<ExcelData> excelDataList = new ArrayList<>();
EasyExcel.read(FILEPATH, ExcelData.class, new AnalysisEventListener<ExcelData>() {
@Override
public void invoke(ExcelData excelData, AnalysisContext analysisContext) {
log.info("read data {}", excelData);
excelDataList.add(excelData);
}
@Override
public void doAfterAllAnalysed