当前位置: 首页 > news >正文

Java读取Excel文件_详细可执行_低内存占用

EasyExcel介绍:高效内存友好Java Excel处理工具,轻松应对大文件

EasyExcel是一个基于Java的、快速且简洁的Excel处理工具,专为解决大文件内存溢出问题设计。与传统的Excel处理框架如Apache POI和jxl相比,它显著降低了内存消耗。例如,一个3M大小的Excel文件使用POI SAX模式解析时可能需要100M左右的内存,而用EasyExcel仅需几M,并且对于更大的文件也不会出现内存溢出的问题。此外,EasyExcel还优化了07版Excel的解压缩过程,进一步减少了内存占用。通过重写解析逻辑并采用SAX模型转换封装,EasyExcel在保持高性能的同时简化了开发者的使用难度。

EasyExcel实战:高效读取Excel文件攻略

使用easyexcel 读取 excel的案例

具体步骤

以下是一个详细的使用EasyExcel读取Excel文件的过程示例,包括基础配置及代码实现:

步骤0:pom依赖

依赖easyexcel pom

<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>2.2.10</version></dependency>
步骤1:定义实体类

首先需要创建一个与Excel表格结构对应的Java实体类,用于映射每一行的数据。这里以一个简单的例子说明:

import com.alibaba.excel.annotation.ExcelProperty;public class DemoData {@ExcelProperty("姓名")private String name;@ExcelProperty("年龄")private int age;// Getters and Setters
}
步骤2:编写数据监听器

接下来,实现AnalysisEventListener接口来自定义数据处理器,该处理器会在每解析一行数据时被调用。

import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;import java.util.ArrayList;
import java.util.List;public class DemoDataListener extends AnalysisEventListener<DemoData> {private List<DemoData> list = new ArrayList<>();@Overridepublic void invoke(DemoData data, AnalysisContext context) {list.add(data);}@Overridepublic void doAfterAllAnalysed(AnalysisContext context) {System.out.println("所有数据解析完成!");}public List<DemoData> getDataList() {return list;}
}
步骤3:设置并执行读取操作

最后,在主程序中设置EasyExcel的相关参数(如是否开启缓存机制等),然后启动读取过程。

import com.alibaba.excel.EasyExcel;public class ExcelReaderDemo {public static void main(String[] args) {String fileName = "path/to/your/excel/file.xlsx";// 默认情况下,对于大文件,EasyExcel会自动判断并采用合理的策略来处理共享字符串。// 如果想要自定义设置,则可以通过readCacheSelector方法进行调整。// 示例中使用默认设置。EasyExcel.read(fileName, DemoData.class, new DemoDataListener()).sheet().doRead();}
}

对上述具体步骤的解释

  • 实体类:用来描述Excel中每个单元格对应的数据类型,确保读入的数据能够正确地转换成相应的Java对象。
  • 监听器:作为回调函数,当EasyExcel解析到新的数据行时就会触发该监听器中的逻辑。用户可以在其中实现具体的业务逻辑,比如将数据保存到数据库或者直接打印出来。
  • 读取配置与执行:提供了灵活的方式来定制读取行为,包括但不限于控制共享字符串的处理方式。如果只是常规用途,通常不需要特别调整,默认配置已经足够满足大多数需求。

通过以上步骤,您可以有效地使用EasyExcel框架来处理各种大小的Excel文件读取任务。


http://www.mrgr.cn/news/47918.html

相关文章:

  • 声音是如何产生的
  • 计算机网络第四章 网络层
  • 【每日学点鸿蒙知识】广告ID、NFC手机充值、CSS支持语法、PC与模拟器交互、SO热更新等
  • MySQL Binlog 监听方案
  • 《 拼数 》
  • 基于微信小程序的面部动作检测系统
  • 【进阶】面向对象之权限修饰符代码块
  • centos7.9升级rockylinux8.8
  • 完全免费安卓远程安卓方案:FRP+ADB甲壳虫方案,远程手机不是问题。
  • 生信初学者教程(二十九):单细胞聚类分析
  • asp.net core Partial 分部视图、视图组件(core mvc 才支持)、视图、Razor组件 、razor pages
  • 我的2023,一个创业者的自述与思考(3)
  • 如何将csdn文章导出为pdf
  • 深入解析:如何使用LangChain进行RAG处理半结构化数据
  • 自然语言处理的未来:让机器“听懂”人类语言的奥秘
  • 免费好用的瓦片地图工具:从数据处理到三维可视化的全能解决方案
  • 通过AI技术克服自动化测试难点(下)
  • Java中的并查集(如果想知道Java中有关并查集的知识点,那么只看这一篇就足够了!)
  • Logback
  • mysql复制表结构和数据
  • 企业联系电话轻松获取途径
  • STM32CUBEIDE的使用【二】PWM
  • Java Springboot 后端使用Mockito库进行单元测试流程
  • AI产品经理指南| 面试了100位AI产品经理后的心得总结
  • Makefile和Cmake
  • 高职图书分享|校企联合开发教材《前端可视化框架应用开发》