【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 小时前
Spring AI Alibaba 快速上手教程:10 分钟接入大模型
java·后端·ai编程
叫我阿柒啊1 小时前
从Java全栈到云原生:一场技术深度对话
java·spring boot·docker·微服务·typescript·消息队列·vue3
ONLYOFFICE1 小时前
【技术教程】如何将文档编辑器集成至基于Java的Web应用程序
java·编辑器·onlyoffice
lbwxxc1 小时前
手写 Tomcat
java·tomcat
CHEN5_021 小时前
【CouponHub项目开发】使用RocketMQ5.x实现延时修改优惠券状态,并通过使用模板方法模式重构消息队列发送功能
java·重构·模板方法模式·项目
杨杨杨大侠1 小时前
实战案例:商品详情页数据聚合服务的技术实现
java·spring·github
杨杨杨大侠1 小时前
实战案例:保险理赔线上审核系统的技术实现
java·spring·github
计算机毕设定制辅导-无忧学长1 小时前
MQTT 与 Java 框架集成:Spring Boot 实战(一)
java·网络·spring boot
叫我阿柒啊1 小时前
从Java全栈到Vue3实战:一次真实面试的深度复盘
java·spring boot·微服务·vue3·响应式编程·前后端分离·restful api
快乐非自愿2 小时前
掌握设计模式--模板方法模式
java·设计模式·模板方法模式