Excelize 發佈 2.7.1 版本,Go 語言 Excel 文檔基礎庫

Excelize 發佈 2.7.1 版本,Go 語言 Excel 文檔基礎庫

Excelize 是 Go 語言編寫的用於操作 Office Excel 文檔基礎庫,基於 ECMA-376,ISO/IEC 29500 國際標準。可以使用它來讀取、寫入由 Microsoft Excel™ 2007 及以上版本創建的電子表格文檔。支持 XLAM / XLSM / XLSX / XLTM / XLTX 等多種文檔格式,高度兼容帶有樣式、圖片(表)、透視表、切片器等複雜組件的文檔,並提供流式讀寫 API,用於處理包含大規模數據的工作簿。可應用於各類報表平臺、雲計算、邊緣計算等系統。入選 2020 Gopher China - Go 領域明星開源項目(GSP)、2018 年開源中國碼雲最有價值開源項目 GVP (Gitee Most Valuable Project),目前已成爲 Go 語言最受歡迎的 Excel 文檔基礎庫。

開源代碼

GitHub: github.com/xuri/excelize

Gitee: gitee.com/xurime/excelize

中文文檔: xuri.me/excelize/zh-hans

2023年4月10日,社區正式發佈了 2.7.1 版本,該版本包含了多項新增功能、錯誤修復和兼容性提升優化。下面是有關該版本更新內容的摘要,完整的更改列表可查看 changelog

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

兼容性提示

  • 移除了 ChartLine 數據類型中的 Color 字段
  • 使用 RichTextRun 數據類型代替 ShapeParagraph
  • 使用 Fill 代替 Shape 數據類型中的 Color 字段
  • 移除了已導出的數據類型 AutoFilterListOptions
  • 將數據類型 TableOptions 重命名爲 Table
  • 添加圖表函數 AddChart 改爲使用 ChartType 類型枚舉值指定圖表類型
  • 修改了 7 個函數的簽名,具體更改詳見官方文檔中的更新說明

新增功能

  • 新增函數 SetSheetDimensionGetSheetDimension 以支持設置與獲取工作表已用區域,相關 issue #1463
  • 創建樣式函數 NewStyle 現已支持 17 種漸變填充樣式
  • 增加創建樣式數量上限至 65430
  • 通過 AddPicture 添加圖片時,現已允許插入 BMP 格式圖片
  • 函數 GetPictures 支持讀取被添加至同一單元格中的多張圖片
  • 設置條件格式函數 SetConditionalFormat 支持設置帶有“如果爲真則停止”和“圖標集”條件的條件格式規則
  • 設置條件格式函數 SetConditionalFormat 支持設置在條件格式中使用帶有純色填充樣式的數據條,並支持指定數據條的顏色,相關 issue #1462
  • 添加圖表函數 AddChart 支持設置圖表中各個數據系列使用自定義填充顏色,相關 issue #1474
  • 添加圖表函數 AddChart 支持設置氣泡圖圖表中各個系列氣泡的大小
  • 添加圖表函數 AddChart 支持設置子母餅圖和複合條餅圖中第二繪圖區域的數據系列
  • 添加圖表函數 AddChart 支持爲圖表中數據標籤設置自定義數字格式,相關 issue #1499
  • 創建表格函數 AddTable 支持在創建表格時指定是否包含標題行
  • 創建表格函數 AddTable 創建表格時增加對錶格名稱的校驗,並導出了錯誤常量 ErrTableNameLength,相關 issue #1468
  • 函數 AutoFilter 支持爲篩選範圍內的多個列設置篩選條件
  • 計算單元格的值函數 CalcCellValue 現已支持指定是否爲公式計算結果應用數字格式
  • 計算單元格的值函數 CalcCellValue 對於以下公式函數加入了雙字節字符的支持:LEFT, LEN, LENB, MID, MIDB, RIGHT 和 RIGHTB,相關 issue #1476
  • 計算單元格的值函數 CalcCellValue 函數對於存在錯誤的公式將在計算結果中返回公式錯誤代碼,並將詳細錯誤信息在 error 數據類型的返回值中返回,相關 issue #1490
  • 對輸入圖片文件的擴展名調整爲大小寫不敏感,相關 issue #1503
  • 使用流式寫入器流式按行賦值時,對於值爲 nil 的單元格將會跳過生成該單元格,相關 issue #756
  • 獲取超鏈接 GetCellHyperLink 函數支持讀取合併單元格中的超鏈接
  • 添加了新的導出類型 ChartType 以表示圖表類型枚舉

兼容性提升

  • 兼容帶有函數組的工作簿
  • 兼容帶有嚴格模式 XML 命名空間地址的工作簿主題,相關 issue #1447
  • 提高了與文檔內部不含工作簿關係部件工作簿的兼容性,以修復打開此類工作簿可能出現的 panic

問題修復

  • 修復了特定情況下讀取日期時間類型單元格的值存在精度誤差的問題
  • 修復了特定情況下當修改原本存儲了日期時間類型的單元格爲文本類型值,修改後單元格數據類型有誤的問題,解決 issue #1464
  • 修復了部分情況下公式計算結果爲空的問題,解決 issue #1469
  • 修復了設置數據條類型條件格式時,指定自定義最大/最小值無效的問題,解決 issue #1492
  • 修復了打開行高或列寬爲 0 的工作表,保存後行高列寬設置失效的問題,解決 issue #1461
  • 提高了讀取帶有空白字符共享字符串表索引值的兼容性,解決 issue #1508

性能優化

  • 提高了應用帶有自定義月份數字格式的速度,相關 issue #1455
  • 大幅提高了對於帶有合併單元格工作表的處理速度,相關 issue #1448

其他

  • Go Excelize 提供了支持 WebAssembly / Javascript 環境的 excelize-wasm NPM 包
  • Go Modules 依賴模塊更新
  • 單元測試與文檔更新
  • 優化內部變量與函數命名
  • 包含簡體中文、英語、法語、俄語、日語、韓語、阿拉伯語、德語和西班牙語的多國語言文檔網站更新

致謝

感謝 Excelize 的所有貢獻者,以下是爲此版本提交代碼的貢獻者列表:

  • liron-l (Liron Levin)
  • nathj07 (Nathan Davies)
  • Josh-Weston (Josh Weston)
  • jaby
  • FlowingSPDG (Shugo Kawamura)
  • barismar (Baris Mar Aziz)
  • doingNobb (張濤)
  • rpoetrap (Rizki Putra)
  • huangshaokun
  • CHANTXU64 (ChantXu64)
  • playGitboy
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章