Excelize 是 Go 語言編寫的用於操作 Office Excel 文檔基礎庫,基於 ECMA-376,ISO/IEC 29500 國際標準。可以使用它來讀取、寫入由 Excel、WPS、OpenOffice 等辦公軟件創建的電子表格文檔。支持 XLAM / XLSM / XLSX / XLTM / XLTX 等多種文檔格式,高度兼容帶有樣式、圖片(表)、透視表、切片器等複雜組件的文檔,並提供流式讀寫支持,用於處理包含大規模數據的工作簿。可應用於各類報表平台、雲計算、邊緣計算等系統。自 2016 年開源以來已成為雲原生應用尤其是 Go 語言開發者在處理電子表格辦公文檔時的熱門選擇,正在被廣泛應用於大型互聯網公司、中小企業客户和初創公司。榮獲 2025 上海開源創新菁英獎、入選 2023 開源創新榜優秀開源項目、榮獲 2022 年中國開源創新大賽一等獎、2020 Gopher China - Go 領域明星開源項目 (GSP)、2018 年開源中國碼雲最有價值開源項目 GVP (Gitee Most Valuable Project)。
開源代碼
- GitHub: github.com/xuri/excelize
- Gitee: gitee.com/xurime/excelize
- 中文文檔: xuri.me/excelize/zh-hans
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 設計的新 Logo
致謝
感謝 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
《Excelize權威指南》
《Excelize權威指南》不僅介紹了 Excelize 庫的基本使用方法,還深入探索了高級特性和應用場景。全書共分五個篇章:入門指南、基礎庫設計概覽、深入 Excelize、高性能流式讀寫技術以及實踐應用。通過這本書,你將學會如何利用 Go 語言和 Excelize 庫,實現 Excel 文件的自動化處理、複雜數據分析以及報表生成等任務。
你將不再受限於 Excel 的傳統操作方式,而是能夠通過編程的方式,解鎖 Excel 新境界,創造出更加智能、高效的數據處理解決方案。