用easyExcel整合es实现导入导出

307 阅读1分钟
目前比较流行的就是处理excel的工具就是 Apache POI 和 阿里巴巴的 easyExcel

image.png

解析Excel时的对比图

性能对比
POI

image.png

阿里EasyExcel

image.png

EasyExcel的基本使用
  • 官方网址:www.yuque.com/easyexcel/d…

  • 应用场景

    数据导入:减少录入工作量

    数据导出:统计信息归档

    数据传输:异构系统之间数据传输

  • EasyExcel特点

    它是阿里巴巴开源的一个excel处理框架,以使用简单、节省内存著称。EasyExcel能大量减少占用内存的主要原因是在解析Excel时没有将文件数据一次性全部加载到内存中,而是从磁盘中一行行读取数据,逐个解析。

    EasyExcel采用一行一行的解析模式,并将一行的解析结果以观察者的模式通知处理(AnalysisEventListener)

EasyExcel读操作
   //一行一行的读取excel数据,表头不会读取
   @Override
   public void invoke(DemoData demoData, AnalysisContext analysisContext) {
        //读到的数据
       System.out.println("*******"+demoData);
   }
   //读取表头
   @Override
   public void invokeHeadMap(Map<Integer, String> headMap, AnalysisContext context) {
       System.out.println("表头"+headMap);
   }
   //读取完成之后
   @Override
   public void doAfterAllAnalysed(AnalysisContext analysisContext) {
 
   }
}
导入流程图

image.png

导出流程图

image.png

主要提供一个思路,如果一个文件数据量很大,导出就会很慢,这种方式需要额外维护一个导入导出的记录,更直观一些,对以前的文件也能维护起来。大家有什么好的方案,欢迎评论区讨论