最简单的读EasyExcel

最简单的读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>

实现:

  • 创建实体类

image-20240723155816504

@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

  • 创建最简单的读的监听器

image-20240723160027325

@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;
    }
}
  1. invoke(T o, AnalysisContext analysisContext)每解析一行数据就会调用一次该方法

  2. doAfterAllAnalysed(AnalysisContext analysisContext):excel解析完毕以后需要执行的代码

image-20240723160325791

@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));
    }
    
}

  1. 定义Excel文件的位置
  2. 调用excel中的read方法
  • 测试结果

image-20240723160433711

image-20240723160542721

  • 8
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值