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

EasyExcel改名为FastExce做了那些改变呢

回到:github原作者地址:https://github.com/CodePhiliaX/fastexcel

中文 |English |

什么是 FastExcel

FastExcel 是由原 EasyExcel 作者创建的新项目。2023 年我已从阿里离职,近期阿里宣布停止更新 EasyExcel,作者他本人决定继续维护和升级这个项目。在重新开始时,为它起名为 FastExcel,以突出这个框架在处理 Excel 文件时的高性能表现,而不仅仅是简单易用。

FastExcel 将始终坚持免费开源,并采用最开放的 MIT 协议,使其适用于任何商业化场景。这为开发者和企业提供了极大的自由度和灵活性。FastExcel 的一些显著特点包括:

  • 1、完全兼容原 EasyExcel 的所有功能和特性,这使得用户可以无缝过渡。
  • 2、从 EasyExcel 迁移到 FastExcel 只需简单地更换包名和 Maven 依赖即可完成升级。
  • 3、在功能上,比 EasyExcel 提供更多创新和改进。
  • 4、FastExcel 1.0.0 版本新增了读取 Excel 指定行数和将 Excel 转换为 PDF 的功能。

主要特性

    1. 高性能读写:FastExcel 专注于性能优化,能够高效处理大规模的 Excel 数据。相比一些传统的 Excel 处理库,它能显著降低内存占用。
    1. 简单易用:该库提供了简洁直观的 API,使得开发者可以轻松集成到项目中,无论是简单的 Excel 操作还是复杂的数据处理都能快速上手。
    1. 流式操作:FastExcel 支持流式读取,将一次性加载大量数据的问题降到最低。这种设计方式在处理数十万甚至上百万行的数据时尤为重要。

安装

下表列出了各版本 FastExcel 基础库对 Java 语言版本最低要求的情况:

版本jdk版本支持范围备注
1.0.0+jdk8 - jdk21目前的master分支,完全兼容easyexcel

强烈建议您使用最新版本的 FastExcel,因为最新版本中的性能优化、BUG修复和新功能都会让您的使用更加方便。

当前 FastExcel 底层使用 poi 作为基础包,如果您的项目中已经有 poi 相关组件,需要您手动排除 poi 的相关 jar 包。

Maven

如果您使用 Maven 进行项目构建,请在 pom.xml 文件中引入以下配置:

<dependency><groupId>cn.idev.excel</groupId><artifactId>fastexcel</artifactId><version>1.0.0</version>
</dependency>

在这里插入图片描述

Gradle

如果您使用 Gradle 进行项目构建,请在 build.gradle 文件中引入以下配置:

dependencies {implementation 'cn.idev.excel:fastexcel:1.0.0'
}

EasyExcel 与 FastExcel 的区别

    1. FastExcel 支持所有 EasyExcel 的功能,但是 FastExcel 的性能更好,更稳定。
    1. FastExcel 与 EasyExcel 的 API 完全一致,可以无缝切换。
    1. FastExcel 会持续的更新,修复 bug,优化性能,增加新功能。

EasyExcel 如何升级到 FastExcel

1. 修改依赖

将 EasyExcel 的依赖替换为 FastExcel 的依赖,如下:

<!-- easyexcel 依赖 -->
<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>版本号</version>
</dependency>

的依赖替换为

<dependency><groupId>cn.idev.excel</groupId><artifactId>fastexcel</artifactId><version>1.0.0</version>
</dependency>

2. 修改代码

将 EasyExcel 的包名替换为 FastExcel 的包名,如下:

// 将 easyexcel 的包名替换为 FastExcel 的包名
import com.alibaba.excel.**;

替换为

import cn.idev.excel.**;

3. 不修改代码直接依赖 FastExcel

如果由于种种原因您不想修改代码,可以直接依赖 FastExcel ,然后在 pom.xml 文件中直接依赖 FastExcel。
EasyExcel 与 FastExcel 可以共存,但是长期建议替换为 FastExcel。

4. 建议以后使用 FastExcel 类

为了兼容性考虑保留了 EasyExcel 类,但是建议以后使用 FastExcel 类,FastExcel 类是FastExcel 的入口类,功能包含了 EasyExcel 类的所有功能,以后新特性仅在 FastExcel 类中添加。

简单示例:读取 Excel 文件

下面是读取 Excel 文档的例子:

// 实现 ReadListener 接口,设置读取数据的操作
public class DemoDataListener implements ReadListener<DemoData> {@Overridepublic void invoke(DemoData data, AnalysisContext context) {System.out.println("解析到一条数据" + JSON.toJSONString(data));}@Overridepublic void doAfterAllAnalysed(AnalysisContext context) {System.out.println("所有数据解析完成!");}
}public static void main(String[] args) {String fileName = "demo.xlsx";// 读取 Excel 文件FastExcel.read(fileName, DemoData.class, new DemoDataListener()).sheet().doRead();
}

简单示例:创建 Excel 文件

下面是一个创建 Excel 文档的简单例子:

// 示例数据类
public class DemoData {@ExcelProperty("字符串标题")private String string;@ExcelProperty("日期标题")private Date date;@ExcelProperty("数字标题")private Double doubleData;@ExcelIgnoreprivate String ignore;
}// 填充要写入的数据
private static List<DemoData> data() {List<DemoData> list = new ArrayList<>();for (int i = 0; i < 10; i++) {DemoData data = new DemoData();data.setString("字符串" + i);data.setDate(new Date());data.setDoubleData(0.56);list.add(data);}return list;
}public static void main(String[] args) {String fileName = "demo.xlsx";// 创建一个名为“模板”的 sheet 页,并写入数据FastExcel.write(fileName, DemoData.class).sheet("模板").doWrite(data());
}
http://www.lryc.cn/news/501237.html

相关文章:

  • 狗狗的生育周期:关注与呵护
  • ABAP DIALOG屏幕编程2
  • 获取缓存大小与清除 Web 缓存 - 鸿蒙 HarmonyOS Next
  • 在Unreal Engine中,UHT与反射机制
  • SQL项目实战与综合应用——项目设计与需求分析
  • 分布式中的CAP定理和BASE理论与强弱一致性
  • C/C++常见符号与运算符
  • 了解 k8s 网络基础知识
  • 用户信息界面按钮禁用+发送消息功能
  • 接近开关传感器-PCB线图电感式传感器【衰减系数1】
  • C/C++流星雨
  • 计算机网络:传输层、应用层、网络安全、视频/音频/无线网络、下一代因特网
  • [漏洞挖掘与防护] 05.CVE-2018-12613:phpMyAdmin 4.8.1后台文件包含缺陷复现及防御措施
  • GroundingDINO微调训练_训练日志解释
  • 【0362】Postgres内核 XLogReaderState readBuf 有完整 XLOG page header 信息 ? ( 7 )
  • H5接入Steam 获取用户数据案例 使用 OpenID 登录绑定公司APP账户 steam公开用户信息获取 steam webapi文档使用
  • pytorch多GPU训练教程
  • 力扣--LCR 178.训练计划VI
  • Linux 网络接口配置
  • 【从零开始入门unity游戏开发之——C#篇01】理论开篇
  • ABAP开发-批量导入BAPI和BDC_1
  • RabbitMQ七种工作模式之 RPC通信模式, 发布确认模式
  • 并非传统意义上的整体二分
  • PostgreSQL的一主一从集群搭建部署 (同步)
  • ios逆向某新闻 md5+aes
  • grpc的负载均衡
  • 提升搜索体验!—— 推出 Elastic Rerank 模型(技术预览版)
  • 【51单片机】程序实验1112.外部中断-定时器中断
  • webrtc-java:引领Java进入实时通信新时代
  • TongWeb7-东方通快速使用手册