【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
相关推荐
g***B7381 小时前
Java 工程复杂性的真正来源:从语言设计到现代架构的全链路解析
java·人工智能·架构
期待のcode3 小时前
MyBatisX插件
java·数据库·后端·mybatis·springboot
醇氧6 小时前
【Windows】优雅启动:解析一个 Java 服务的后台启动脚本
java·开发语言·windows
sunxunyong6 小时前
doris运维命令
java·运维·数据库
菜鸟起航ing6 小时前
Spring AI 全方位指南:从基础入门到高级实战
java·人工智能·spring
古城小栈6 小时前
Docker 多阶段构建:Go_Java 镜像瘦身运动
java·docker·golang
MapGIS技术支持6 小时前
MapGIS Objects Java计算一个三维点到平面的距离
java·开发语言·平面·制图·mapgis
Coder_Boy_6 小时前
业务导向型技术日志首日记录(业务中使用的技术栈)
java·驱动开发·微服务
盖世英雄酱581368 小时前
springboot 项目 从jdk 8 升级到jdk21 会面临哪些问题
java·后端
济南壹软网络科技有限公司8 小时前
企业级盲盒系统:Java高并发架构在多元化抽奖电商中的设计与实践
java·架构·开源源码·盲盒源码·盲盒h5·盲盒app