1. 首页
  2. 课程学习
  3. Java
  4. 高效应对大文件内存溢出的Java Excel处理工具

高效应对大文件内存溢出的Java Excel处理工具

上传者: 2023-12-06 02:07:43上传 RAR文件 4.91MB 热度 61次

前言最近项目在生产环境执行数据导入任务时,发现CPU出现异常状况。经过多次定位,发现问题出在读取Excel文件上。通常使用的POI在处理大数据量的Excel(50MB或数十万行以上)时容易导致内存溢出或CPU飙升。需要注意,本文讨论的是针对XLSX格式的Excel文件。在Java技术生态圈中,主流的Excel处理技术包括Apache POI、JXL、阿里巴巴EasyExcel等。由于JXL仅支持Excel2003以下版本,因此使用相对较少。Apache POI采用DOM方式解析,将文件直接加载到内存中,因此速度较快,适用于Excel文件数量不大的场景。阿里巴巴EasyExcel采用逐行读取的解析模式,通过观察者模式通知处理(AnalyEventListener),因此适用于解析数据体量较大的Excel文件。场景复现与问题定位方面,使用POI时,由于将文件的所有内容加载到内存中,读取大型Excel文件容易占用大量内存,导致发生OOM。

下载地址
用户评论