解決問題:源碼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交流鏈接
測試用例
@Testvoid 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