questions:

    • 它在项目是处理什么问题的?
      • 处理上传的 excel 文件,直接从文件读取信息
    • 大概写法是什么?
    • 对于团队有什么好处?
      • 方便,快捷
    • 有没有其他的替代方案
    • 替代了什么老的技术,解决了老技术的什么问题?(备选)

    • 引入依赖;EasyExcel 的功能实现是建立在 apache.poi 的基础之上的(所以在 webedu 项目之中才会在父项目 pom 的 dependencyManagement 中明确该两个依赖的版本要求)
    • 创建 listener 继承 AnalysisEventListener,设置数据读取之后的操作
      • 重写其中的 invoke() 和 doAfterAllAnalysed() 方法
      • invoke() 负责对每一条记录进行处理,参数 Object 就是读取到的记录
      • doAfterAllAnalysed() 应该是定义所有读取完成之后的操作
      • 需注意:因为 Listener 在实际操作中需要通过构造方法 new 出来,所以不能交由 IoC 容器管理,那就导致 Listener 中也不能调用 IoC 容器中的对象;所以在要通过 Bean 中的方法将读取到的记录写入进数据库时,可以将该 Bean 以构造方法参数的形式传递到 Listener 中
    • 创建 entity 对应 excel 中的记录,方便读取信息
      • entity 类中的属性可以添加注解 @ExcelProperty( value = ) 或者 @ExcelProperty( name = ) 来方便读取的时候定位数据
    • 调用 EasyExcel.read().sheet().doread() 方法来实现数据的读取

    reference: