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> {
@Override
public 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(); // 打印异常信息,确保没有未捕获的异常
}
}
@Override
public void doAfterAllAnalysed(AnalysisContext context) {
// 所有数据解析完成后的操作
System.out.println("读取完成");
}
}
运行结果