【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
相关推荐
小蒜学长1 分钟前
springboot基于BS的小区家政服务预约平台(代码+数据库+LW)
java·数据库·spring boot·后端
我命由我123459 分钟前
Git 暂存文件警告信息:warning: LF will be replaced by CRLF in XXX.java.
java·linux·笔记·git·后端·学习·java-ee
智源研究院官方账号10 分钟前
智源 RoboBrain-X0 开源,打破机器人跨本体泛化困境
机器人·开源
小胖同学~13 分钟前
JVM内存模型剖析
java·jvm
简色28 分钟前
预约优化方案全链路优化实践
java·spring boot·后端·mysql·spring·rabbitmq
nice_lcj52043 分钟前
深入理解ArrayList与LinkedList:Java集合框架核心对比(含实战案例+面试考点)
java·面试
小蕾Java1 小时前
IDEA快速上手指南!
java·intellij-idea·swift
聪明的笨猪猪1 小时前
Java 内存模型(JMM)面试清单(含超通俗生活案例与深度理解)
java·经验分享·笔记·面试
羚羊角uou1 小时前
【Linux】线程的互斥
java·开发语言
学编程的小鬼1 小时前
SpringBoot日志
java·后端·springboot