简介
FastExcel是由原EasyExcel作者在阿里巴巴宣布停止维护EasyExcel之后推出的升级版框架。它继承了EasyExcel的所有优点,并且在性能和功能上进行了显著的提升和创新。
FastExcel的特点
- 高性能读写:FastExcel专注于性能优化,能够高效处理大规模的Excel数据,显著降低内存占用。
- 简单易用:提供了简洁直观的API,使得开发者可以轻松集成到项目中,无论是简单的Excel操作还是复杂的数据处理都能快速上手。
- 流式操作:支持流式读取,将一次性加载大量数据的问题降到最低,特别适合处理数十万甚至上百万行的数据。
- 完全兼容:完全兼容原EasyExcel的所有功能和特性,用户可以无缝过渡。
- 持续更新:FastExcel会持续更新,修复bug,优化性能,增加新功能。
FastExcel使用方法详解
创建实体类和监听器
创建实体类
在使用FastExcel进行Excel文件的读写操作之前,需要定义一个实体类,该类中的每个属性对应Excel中的一列。使用@ExcelProperty
注解来指定列名。
/**
* @author 作者:TesterRoad
* @time 创建时间:2024
* @desc 公众号:测试工程师成长之路
*/
import cn.idev.excel.annotation.ExcelProperty;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@Setter
@Getter
@ToString
public class User {
@ExcelProperty("编号")
private Integer id;
@ExcelProperty("名字")
private String name;
@ExcelProperty("年龄")
private Integer age;
}
创建事件监听器
FastExcel通过事件监听器实现Excel文件的逐行读取,这对于处理大文件尤为重要,因为它可以避免内存溢出的问题。下面是一个事件监听器的示例,它在读取每行数据时将数据添加到列表中,并在所有数据读取完成后执行一些操作。
/**
* @author 作者:TesterRoad
* @time 创建时间:2024
* @desc 公众号:测试工程师成长之路
*/
import cn.idev.excel.context.AnalysisContext;
import cn.idev.excel.event.AnalysisEventListener;