【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
相关推荐
未若君雅裁35 分钟前
MyBatis 一级缓存、二级缓存与清理机制
java·缓存·mybatis
AI人工智能+电脑小能手1 小时前
【大白话说Java面试题 第65题】【JVM篇】第25题:谈谈对 OOM 的认识
java·开发语言·jvm
阿维的博客日记2 小时前
Nacos 为什么能让配置动态生效?(涉及 @RefreshScope 注解)
java·spring
雨辰AI2 小时前
SpringBoot3 + 人大金仓读写分离 + 分库分表 + 集群高可用 全栈实战
java·数据库·mysql·政务
二等饼干~za8986682 小时前
从零搭建 Geo 开源项目源码开发环境——以 GeoServer 为例
开源
极客BIM工作室2 小时前
IfcOpenShell:开源BIM的核心引擎技术解析
开源
lularible3 小时前
从沙子到车辙(3.3):数据通路与控制器的“双人舞“
开源·嵌入式·汽车电子
数据法师3 小时前
MotrixNext:接棒经典 Motrix,用 Tauri 2+Rust 重构的下一代开源下载神器
重构·rust·开源
辰海Coding3 小时前
MiniSpring框架学习-完成的 IoC 容器
java·spring boot·学习·架构
小小编程路3 小时前
C++ 多线程与并发
java·jvm·c++