Excelize 是 Go 語言編寫的用於操作 Office Excel 文檔類庫,基於 ECMA-376 Office Open XML 標準。可以使用它來讀取、寫入由 Microsoft Excel™ 2007 及以上版本創建的 XLSX 文檔。相比較其他的開源類庫,Excelize 支持寫入原本帶有圖片 (表)、透視表和切片器等複雜樣式的文檔,還支持向 Excel 文檔中插入圖片與圖表,並且在保存後不會丟失文檔原有樣式,可以應用於各類報表系統中。入選 2018 開源中國碼雲 Gitee 最有價值開源項目 GVP,目前已成為 Go 語言最受歡迎的 Excel 文檔基礎庫。
開源代碼
github.com/xuri/excelize
Excelize 知名用戶
更新摘要
2020 年 2 月 10 日,社區正式發佈了 2.1.0 版本,該版本包含了多項新增功能、錯誤修復和兼容性提升優化。此版本中最顯著的變化包括:
新增功能
- 新增 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%)
- 完善單元測試中的錯誤處理
- 包含簡體中文、英語、法語、俄語、日語和韓語的多國語言文檔網站更新
- 技術交流群
閱讀更多 xuri 的文章