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中文文檔:
xuri.me/excelize/zh-hans2019年10月9日,社群正式釋出了 2.0.2 版本,該版本包含了多項新增功能、錯誤修複和相容性提升優化。
此版本中最顯著的變化包括:
相容性提示
更新至該版本需要您的 Go 語言版本高于 1.10。
新增功能
- 支援建立資料透視表。新增
函數AddPivotTable()
- 支援建立迷你圖 (Sparkine)。 新增
AddSparkline()
- 新增
和GroupSheets()
方法,支援設定工作表分組和取消工作表分組UngroupSheets()
-
方法,支援向 Excel 文檔中嵌入包含函數和宏的 VBA 工程AddVBAProject()
-
增加适應頁面寬高屬性支援,相關 issue #432SetPageLayout()
-
現在支援 “值為零的單元格是否顯示零值” 屬性的設定SetSheetViewOptions()
-
增加了對公式類型和引用屬性的設定支援SetCellFormula()
- 增加帶有删除線字型樣式的建立支援,相關 issue #482
問題修複
- 修複部分情況下讀取批注内容文本不完整的問題,解決 issue #434
- 修複由于内部合并單元格偏移量計算錯誤導緻的部分情況下使用
删除行出現下标越界問題,解決 issue #437RemoveRow()
- 修複部分情況下資料驗證下拉菜單中的公式失效問題
- 修複在循環疊代中調用
方法儲存導緻的文檔損壞問題,解決 issue #443Save()
- 提升文檔内部
中相對路徑格式解析的相容性,解決 issue #442workbook.xml.rels
- 修複部分情況下,删除帶有合并單元格的文檔所導緻的檔案損壞問題
- 修複部分情況下設定保護工作表屬性失效的情況,解決 issue #454
- 修複部分情況下
擷取工作表名稱為空的問題, 解決 issue #457GetSheetName
- 增加單元格内多行文本解析的支援, 相關 issue #464
- 修複 32 位作業系統環境下數字溢出問題,相關 issue #386
- 修複 go module 依賴版本不比對問題, 相關 issue #466 和 issue #480
- 修複部分情況下調用
所緻的文檔損壞問題,解決 issue #483SetSheetPrOptions()
性能表現
- 性能優化,減少讀取文檔時的記憶體開銷和耗時,相關 issue #439
其他
- 完善
函數中的異常處理SetSheetRow()
- 代碼精簡優化, 合并了下列内部函數:
将函數
workBookRelsWriter
,
drawingRelsWriter
合并為
relsWriter
;
drawingRelsReader
workbookRelsReader
workSheetRelsReader
relsReader
addDrawingRelationships
addSheetRelationships
addRels