最简单的读EasyExcel
快速入门:
实现读取EasyExcel中的数据
参考官方文档:https://easyexcel.opensource.alibaba.com/docs/2.x/quickstart/read
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>3.1.0</version>
</dependency>
<dependency>
实现:
- 创建实体类
@Data
public class DemoData {
@ExcelProperty(value = "名字", index = 0)
private String username;
@ExcelProperty(value = "密码", index = 1)
private String password;
@ExcelProperty(value = "手机", index = 2)
private String phone;
}
实体类增加注解 @ExcelProperty
- 创建最简单的读的监听器
@Slf4j
public class DemoDataListener<T> extends AnalysisEventListener<T> {
// 可以通过实例获取该值
private List<T> datas = new ArrayList<>();
@Override
public void invoke(T o, AnalysisContext analysisContext) { // 每解析一行数据就会调用一次该方法
// 数据存储到list,供批量处理,或后续自己业务逻辑处理。
datas.add(o);
System.out.println("解析数据:" + o);
}
@Override
public void doAfterAllAnalysed(AnalysisContext analysisContext) {
System.out.println("-----解析Excel完毕----- ");
// excel解析完毕以后需要执行的代码
}
public List<T> getDatas() {
return datas;
}
}
invoke(T o, AnalysisContext analysisContext)
每解析一行数据就会调用一次该方法
doAfterAllAnalysed(AnalysisContext analysisContext)
:excel解析完毕以后需要执行的代码
@SpringBootTest
class EasyExcelDemoApplicationTests {
@Test
void EasyExcelTest() {
// 定义excel文件的位置
String filePath = "D:\\test\\测试数据.xlsx";
DemoDataListener<DemoData> demoDataListener = new DemoDataListener();
// 调用excel中的read方法
EasyExcel.read(filePath, DemoData.class, demoDataListener)
.sheet()
.doRead();
List<DemoData> datas = demoDataListener.getDatas();
System.out.println("-----打印数据-----");
datas.forEach(data -> System.out.println(data));
}
}
- 定义Excel文件的位置
- 调用excel中的read方法
- 测试结果