Excelize 是 Go 語言編寫的用於操作 Office Excel 文檔類庫,基於 ECMA-376 Office Open XML 標準。可以使用它來讀取、寫入由 Microsoft Excel™ 2007 及以上版本創建的 XLSX 文檔。相比較其他的開源類庫,Excelize 支持寫入原本帶有圖片(表)、透視表和切片器等複雜樣式的文檔,還支持向 Excel 文檔中插入圖片與圖表,並且在保存後不會丟失文檔原有樣式,可以應用於各類報表系統中。入選 2018 開源中國碼雲 Gitee 最有價值開源項目 GVP,目前已成爲 Go 語言最受歡迎的 Excel 文檔基礎庫。
開源代碼
GitHub: github.com/xuri/excelize
Gitee: gitee.com/xurime/excelize
中文文檔: xuri.me/excelize/zh-hans
Excelize 知名用戶
2020年2月10日,社區正式發佈了 2.1.0 版本,該版本包含了多項新增功能、錯誤修復和兼容性提升優化。下面是有關該版本更新內容的摘要,完整的更改列表可查看 changelog。
有關更改的摘要,請參閱 Release Notes。完整的更改列表可查看 change log。
Release Notes
此版本中最顯著的變化包括:
新增功能
- 新增
DeleteDefinedName
方法,支持從工作簿或工作表中刪除名稱 - 新增
SetPageMargins
和GetPageMargins
方法,支持獲取和設置頁面邊距 - 新增
DeleteChart
和DeletePicture
方法,支持從工作表中刪除圖表和圖片 - 增加對非 UTF-8 編碼 Excel 文檔的支持
- 函數
AddChart
現已支持創建子母餅圖、複合條餅圖和組合圖 - 函數
AddChart
新增設置圖表主要網格線支持,相關 issue #501 - 函數
AddChart
支持設置折線圖線條寬度,相關 issue #505 - 函數
AddChart
現已支持指定圖表座標軸標籤間隔單位,相關 issue #538 - 函數
SetColVisible
支持對指定範圍內的多列進行可見行設置 - 函數
AddPivotTable
支持創建數據透視表時,所引用數據源區域存在空列,相關 issue #511
問題修復
- 修復單元格值的末尾空白字符丟失問題
- 函數
MergeCell
支持重疊合並單元格處理,解決 issue #533 - 修復某些情況下空內聯富文本丟失的問題,解決 issue #529
- 修復對空工作簿視圖的處理,解決 issue #426
- 增加對公式中存在的轉義字符處理,解決 issue #546
性能表現
- 新增
NewStreamWriter
和Flush
方法,適用於生成包含大規模數據的工作表。與非流式寫入相比,可降低 90.2% 的內存開銷、節省 53% 時間 - 函數
GetRows
內存採用流式數據讀取,讀取電子表格文檔內存開銷降低 87.9%,相關 issue #146 和 issue #382 - 兼容性提升,新增 49 個文檔內部 XML 命名空間支持
其他
- 對於解析 XML 過程出現的異常將使用日誌記錄,相關 issue #539
- 提高單元測試覆蓋度(行覆蓋度:97.04%)
- 完善單元測試中的錯誤處理
- 包含簡體中文、英語、法語、俄語、日語和韓語的多國語言文檔網站更新
- 技術交流羣