【FastExcel】解决ReadSheet在Map中获取对象不准确问题(已提交PR并合并到开源社区)

解决问题:源码ReadSheet在同一个Map中获取对象不准确问题

PR:Fixed the issue where different ReadSheet objects could not get the correct value when comparing them.

一:问题场景

复制代码
ReadSheet在同一个Map中获取对象不准确(如Map<ReadSheet, T> map)

二:分析原因

复制代码
ReadSheet does not implement @EqualsAndHashCode
(ReadSheet 未实现equals和hashcode方法,但是在部分测试用例中是体现不出来的,具体可以看下面的测试用例,比较直观)

三:PR地址

PR交流链接

测试用例

java 复制代码
 	@Test
    void testMapWithReadSheet() {

        ReadSheet sheet1 = new ReadSheet(1, "Sheet1");

        ReadSheet sheet2 = new ReadSheet(0, "Sheet2");

        Map<ReadSheet, String> map = new HashMap<>();
        map.put(sheet1, "sheet1 Value");
        //
        ReadSheet sheet3 = new ReadSheet(0, "Sheet2");
        map.put(sheet3, "sheet3 Value");

        String value = map.get(sheet2);
        System.out.println(value);

    }

四:扩展分享

看到Issue中很多提交的相关问题,故分享一下早前写过的例子.

Note:FastExcel完全兼容Easyexcel是比较友好的.(实现基本可以沿用)

1.导出excel冻结表头和冻结指定列并支持筛选器

【EasyExcel】导出excel冻结表头和冻结指定列并支持筛选器

2.导出excel-设置动态表头并导出数据

【EasyExcel】导出excel-设置动态表头并导出数据

3.【EasyExcel】导出excel并支持自定义设置数据行背景颜色等

【EasyExcel】导出excel并支持自定义设置数据行背景颜色等

最后:

什么是 FastExcel

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

完全兼容原 EasyExcel 的所有功能和特性,这使得用户可以无缝过渡。

从 EasyExcel 迁移到 FastExcel 只需简单地更换包名和 Maven 依赖即可完成升级。

在功能上,比 EasyExcel 提供更多新的特性和改进。

主要特性

  • 高性能读写:FastExcel 专注于性能优化,能够高效处理大规模的 Excel 数据。相比一些传统的 Excel 处理库,它能显著降低内存占用。
  • 简单易用:该库提供了简洁直观的 API,使得开发者可以轻松集成到项目中,无论是简单的 Excel 操作还是复杂的数据处理都能快速上手。
  • 流式操作:FastExcel 支持流式读取,将一次性加载大量数据的问题降到最低。这种设计方式在处理数十万甚至上百万行的数据时尤为重要。
    具体可访问:FastExcel
相关推荐
rannn_11115 分钟前
【苍穹外卖|Day4】套餐页面开发(新增套餐、分页查询、删除套餐、修改套餐、起售停售)
java·spring boot·后端·学习
qq_124987075319 分钟前
基于JavaWeb的大学生房屋租赁系统(源码+论文+部署+安装)
java·数据库·人工智能·spring boot·计算机视觉·毕业设计·计算机毕业设计
短剑重铸之日25 分钟前
《设计模式》第十一篇:总结
java·后端·设计模式·总结
芷栀夏33 分钟前
从 CANN 开源项目看现代爬虫架构的演进:轻量、智能与统一
人工智能·爬虫·架构·开源·cann
若鱼19191 小时前
SpringBoot4.0新特性-Observability让生产环境更易于观测
java·spring
觉醒大王1 小时前
强女思维:着急,是贪欲外显的相。
java·论文阅读·笔记·深度学习·学习·自然语言处理·学习方法
芷栀夏1 小时前
深度解析 CANN 异构计算架构:基于 ACL API 的算子调用实战
运维·人工智能·开源·cann
努力学编程呀(๑•ี_เ•ี๑)1 小时前
【在 IntelliJ IDEA 中切换项目 JDK 版本】
java·开发语言·intellij-idea
酷酷的崽7981 小时前
CANN 开源生态解析(四):`cann-dist-train` —— 构建高效可扩展的分布式训练引擎
分布式·开源
码农小卡拉1 小时前
深入解析Spring Boot文件加载顺序与加载方式
java·数据库·spring boot