Excelize 是 Go 語言編寫的用於操作 Office Excel 檔案基礎庫,2025年10月14日,社區正式釋出了 2.10.0 版本,該版本包含了多項新增功能、錯誤修復和兼容性提升優化。

Excelize 是 Go 語言編寫的用於操作 Office Excel 檔案基礎庫,基於 ECMA-376,ISO/IEC 29500 國際標準。可以使用它來讀取、寫入由 Microsoft Excel™ 2007 及以上版本創建的電子錶格檔案。支持 XLAM / XLSM / XLSX / XLTM / XLTX 等多種檔案格式,高度兼容帶有樣式、圖片(表)、樞紐分析表、切片器等複雜組件的檔案,並提供流式讀寫 API,用於處理包含大規模數據的活頁簿。
- GitHub: github.com/xuri/excelize
- 中文檔案: xuri.me/excelize/zh-tw
2025年10月14日,社區正式釋出了 2.10.0 版本,該版本包含了多項新增功能、錯誤修復和兼容性提升優化。下面是有關該版本更新內容的摘要,此版本中最顯著的變化包括:
相容性提示
- 升級 Go 語言版本要求至 1.24.0 或更高版本,以升級依賴包
golang.org/x/crypto
新增功能
- 新增導出的錯誤變數
ErrTransparency - 新增 3 項資料類型:
ChartDashType、CustomProperty和ZipWriter - 在
ChartMarker資料類型中新增Border欄位 - 在
ChartLegend資料類型中新增Font欄位 - 在
ChartSeries資料類型中新增Legend欄位 - 在
Fill資料類型中新增Transparency欄位 - 在
ChartLine資料類型中新增Dash和Fill欄位 - 在
Options資料類型中新增TmpDir欄位,支持指定用於創建臨時文件的臨時目錄,相關 issue 2024 - 在
Font資料類型中新增Charset欄位,支持指定字體編碼 - 新增 2 項函式
GetCustomProps和SetCustomProps,支持獲取和設定活頁簿的自訂屬性,相關 issue 2146 - 新增函式
SetZipWriter,支持設定自訂 ZIP 寫入器,相關 issue 2199 - 在函式
GetMergeCells中新增可選參數withoutValues,支持獲取合併存儲格時略過讀區合併存儲格的值 - 函式
DeleteDataValidation支持刪除擴展列表中的資料驗證,並支持透過引用序列數組或空格分隔的引用字符串,對多個存儲格範圍進行刪除,相關 issue 2133 - 函式
AddChart支持設定圖表的虛線樣式和資料點外框類型 - 函式
AddChart支持設定圖表圖例的字體,相關 issue 2169 - 函式
AddChart和AddChartSheet支持創建 4 種箱體和蠟燭圖類型股票圖表:最高價-最低價-收盤價、開盤價-最高價-最低價-收盤價、成交量-最高價-最低價-收盤價、成交量-開盤價-最高價-最低價-收盤價圖表 - 函式
CalcCellValue支持計算 BAHTTEXT 公式函式 - 當字體字號小於最小值時,創建樣式時將不再使用默認字體大小代替,而是略過無效的字號設定
- 支持解析帶有伊斯蘭歷的存儲格數字格式
- 支持為圖表和形狀設定透明度,相關 issue 2176
- 新增對以下 8 種語言的數字格式支持:科西嘉語、克羅埃西亞語、克羅埃西亞語(拉丁語)、捷克語、丹麥語、迪維希語、荷蘭語、不丹語
相容性提升
- 設定存儲格公式時移除所有前導等號,以提升與 Apple Numbers 的兼容性,相關 issue 2145
- 在活頁簿內部關係部件中為工作表使用相對路徑
問題修復
- 修復 v2.9.1 中引入的問題,修復 ARMv7 架構上構建失敗的問題,解決 issue 2132
- 修復在數字格式解析器解析結果中,數字格式末尾的空白字符丟失問題
- 修復部分情況下,讀取存儲格時由於內部索引偏移範圍無效導致的 panic 問題,解決 issue 2019 和 2150
- 修復部分情況下,讀取帶有不支持的樞紐分析表緩存源類型時出現的 panic 問題,解決 issue 2161
- 修復字符驗證錯誤,在字符長度限制檢查中將字符作為單個字符計數,解決 issue 2167
- 修復部分情況下,添加樞紐分析表後,生成的活頁簿在 Mac 版本 Excel 開啓時提示檔案損壞的問題,解決 issue 2180
- 修復讀取包含藏語數字格式代碼的存儲格時月份縮寫錯誤的問題
- 修復讀取 1900 年帶有特殊日期數字格式的結果與 Excel 不一致的問題,解決 issue 2192
性能優化
- 獲取工作表已用區域函數
GetSheetDimension採用流式解析,相較於上個正式版本速度最高提升約 95%,記憶體分配降低約 96%
其他
- Go Modules 依賴模塊更新
- 單元測試與文檔更新
- 包含阿拉伯語、德語、英語、西班牙語、法語、意大利語、日語、韓語、葡萄牙語、俄語、簡體中文和繁體中文的多國語言文檔網站更新
- 支援 WebAssembly / JavaScript 的 excelize-wasm NPM 包發佈版本更新
- 支援 Python 的 excelize PyPI 包發佈版本更新
- 支援 C# 的 ExcelizeCs NuGet .Net 包發佈
- 使用為 Excelize 設計的新徽標, 大量的文檔更新
致謝
感謝 Excelize 的所有貢獻者,以下是為此版本提交代碼的貢獻者列表:
- DengY11 (Yi Deng)
- JerryLuo-2005
- aliavd1 (Ali Vatandoost)
- xiaoq898
- Now-Shimmer
- Jameshu0513
- mengpromax (MengZhongYuan)
- Leopard31415926
- hongjr03 (Hong Jiarong)
- juefeng
- black-butler
- Neugls
- Leo012345678
- a2659802
- torotake
- crush-wu
- zhuyanhuazhuyanhua
- shcabin