网站建站论坛,企业建设网站注意事项,自己做视频网站能赚钱吗,seo自媒体运营技巧回到#xff1a;github原作者地址#xff1a;https://github.com/CodePhiliaX/fastexcel
中文 |English |
什么是 FastExcel
FastExcel 是由原 EasyExcel 作者创建的新项目。2023 年我已从阿里离职#xff0c;近期阿里宣布停止更新 EasyExcel#xff0c;作者他本人决定继…回到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 的功能。
主要特性 高性能读写FastExcel 专注于性能优化能够高效处理大规模的 Excel 数据。相比一些传统的 Excel 处理库它能显著降低内存占用。 简单易用该库提供了简洁直观的 API使得开发者可以轻松集成到项目中无论是简单的 Excel 操作还是复杂的数据处理都能快速上手。 流式操作FastExcel 支持流式读取将一次性加载大量数据的问题降到最低。这种设计方式在处理数十万甚至上百万行的数据时尤为重要。
安装
下表列出了各版本 FastExcel 基础库对 Java 语言版本最低要求的情况
版本jdk版本支持范围备注1.0.0jdk8 - jdk21目前的master分支完全兼容easyexcel
强烈建议您使用最新版本的 FastExcel因为最新版本中的性能优化、BUG修复和新功能都会让您的使用更加方便。 当前 FastExcel 底层使用 poi 作为基础包如果您的项目中已经有 poi 相关组件需要您手动排除 poi 的相关 jar 包。 Maven
如果您使用 Maven 进行项目构建请在 pom.xml 文件中引入以下配置
dependencygroupIdcn.idev.excel/groupIdartifactIdfastexcel/artifactIdversion1.0.0/version
/dependencyGradle
如果您使用 Gradle 进行项目构建请在 build.gradle 文件中引入以下配置
dependencies {implementation cn.idev.excel:fastexcel:1.0.0
}EasyExcel 与 FastExcel 的区别 FastExcel 支持所有 EasyExcel 的功能但是 FastExcel 的性能更好更稳定。 FastExcel 与 EasyExcel 的 API 完全一致可以无缝切换。 FastExcel 会持续的更新修复 bug优化性能增加新功能。
EasyExcel 如何升级到 FastExcel
1. 修改依赖
将 EasyExcel 的依赖替换为 FastExcel 的依赖如下
!-- easyexcel 依赖 --
dependencygroupIdcom.alibaba/groupIdartifactIdeasyexcel/artifactIdversion版本号/version
/dependency的依赖替换为
dependencygroupIdcn.idev.excel/groupIdartifactIdfastexcel/artifactIdversion1.0.0/version
/dependency2. 修改代码
将 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 ReadListenerDemoData {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 ListDemoData data() {ListDemoData 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());
}