天天看點

Excelize 釋出 2.0.2 版本, Go 語言 Excel 基礎庫

Excelize 釋出 2.0.2 版本, Go 語言 Excel 基礎庫

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-hans

2019年10月9日,社群正式釋出了 2.0.2 版本,該版本包含了多項新增功能、錯誤修複和相容性提升優化。

此版本中最顯著的變化包括:

相容性提示

更新至該版本需要您的 Go 語言版本高于 1.10。

新增功能

  • 支援建立資料透視表。新增

    AddPivotTable()

    函數
  • 支援建立迷你圖 (Sparkine)。 新增

    AddSparkline()

  • 新增

    GroupSheets()

    UngroupSheets()

    方法,支援設定工作表分組和取消工作表分組
  • AddVBAProject()

    方法,支援向 Excel 文檔中嵌入包含函數和宏的 VBA 工程
  • SetPageLayout()

    增加适應頁面寬高屬性支援,相關 issue #432
  • SetSheetViewOptions()

    現在支援 “值為零的單元格是否顯示零值” 屬性的設定
  • SetCellFormula()

    增加了對公式類型和引用屬性的設定支援
  • 增加帶有删除線字型樣式的建立支援,相關 issue #482

問題修複

  • 修複部分情況下讀取批注内容文本不完整的問題,解決 issue #434
  • 修複由于内部合并單元格偏移量計算錯誤導緻的部分情況下使用

    RemoveRow()

    删除行出現下标越界問題,解決 issue #437
  • 修複部分情況下資料驗證下拉菜單中的公式失效問題
  • 修複在循環疊代中調用

    Save()

    方法儲存導緻的文檔損壞問題,解決 issue #443
  • 提升文檔内部

    workbook.xml.rels

    中相對路徑格式解析的相容性,解決 issue #442
  • 修複部分情況下,删除帶有合并單元格的文檔所導緻的檔案損壞問題
  • 修複部分情況下設定保護工作表屬性失效的情況,解決 issue #454
  • 修複部分情況下

    GetSheetName

    擷取工作表名稱為空的問題, 解決 issue #457
  • 增加單元格内多行文本解析的支援, 相關 issue #464
  • 修複 32 位作業系統環境下數字溢出問題,相關 issue #386
  • 修複 go module 依賴版本不比對問題, 相關 issue #466 和 issue #480
  • 修複部分情況下調用

    SetSheetPrOptions()

    所緻的文檔損壞問題,解決 issue #483

性能表現

  • 性能優化,減少讀取文檔時的記憶體開銷和耗時,相關 issue #439

其他

  • 完善

    SetSheetRow()

    函數中的異常處理
  • 代碼精簡優化, 合并了下列内部函數:

将函數

workBookRelsWriter

,

drawingRelsWriter

合并為

relsWriter

;

drawingRelsReader

workbookRelsReader

workSheetRelsReader

relsReader

addDrawingRelationships

addSheetRelationships

addRels