Java解析Excel表格
<!-- Excel 表格解析 --><dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>4.0.3</version></dependency>
简单使用
// 创建一个读取监听器
ReadListener<EvaluationData> readListener = new EvaluationDataListener();// 读取Excel文件
EasyExcel.read("文件地址", EvaluationData.class, readListener).sheet().doRead();
表格类: 用于解析表格参数
package org.com.usual_backend.utils;import lombok.Data;
import lombok.EqualsAndHashCode;// 记录表格数据
@Data
@EqualsAndHashCode
public class EvaluationData {private String college; // 学院private String administrativeClass; // 行政班private String totalEvaluationTimes; // 需评价人次private String evaluatedTimes; // 已评价人次private String unevaluatedTimes; // 未评价人次private String totalEvaluationPeople; // 需评价人数private String evaluatedPeople; // 已评价过人数private String unevaluatedPeople; // 未评价完人数private String fullyEvaluatedPeople; // 完全评价人数private String partiallyEvaluatedPeople; // 部分评价人数private String notEvaluatedAtAllPeople; // 完全未评价人数
}
解析参数
package org.com.usual_backend.utils;import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;// 读取监听器
public class EvaluationDataListener extends AnalysisEventListener<EvaluationData> {@Overridepublic void invoke(EvaluationData data, AnalysisContext context) {// 每读取一行数据,会调用这个方法try {System.out.println("学院: " + data.getCollege() +" - 行政班: " + data.getAdministrativeClass() +" - 需评价人次: " + data.getTotalEvaluationTimes() +" - 已评价人次: " + data.getEvaluatedTimes() +" - 未评价人次: " + data.getUnevaluatedTimes() +" - 需评价人数: " + data.getTotalEvaluationPeople() +" - 已评价过人数: " + data.getEvaluatedPeople() +" - 未评价完人数: " + data.getUnevaluatedPeople() +" - 完全评价人数: " + data.getFullyEvaluatedPeople() +" - 部分评价人数: " + data.getPartiallyEvaluatedPeople() +" - 完全未评价人数: " + data.getNotEvaluatedAtAllPeople());} catch (Exception e) {e.printStackTrace(); // 打印异常信息,确保没有未捕获的异常}}@Overridepublic void doAfterAllAnalysed(AnalysisContext context) {// 所有数据解析完成后的操作System.out.println("读取完成");}
}
运行结果