目前比较流行的就是处理excel的工具就是 Apache POI 和 阿里巴巴的 easyExcel
解析Excel时的对比图
性能对比
POI
阿里EasyExcel
EasyExcel的基本使用
-
应用场景
数据导入:减少录入工作量
数据导出:统计信息归档
数据传输:异构系统之间数据传输
-
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) {
}
}
导入流程图
导出流程图
主要提供一个思路,如果一个文件数据量很大,导出就会很慢,这种方式需要额外维护一个导入导出的记录,更直观一些,对以前的文件也能维护起来。大家有什么好的方案,欢迎评论区讨论