Go 語言 Excel 類庫 Excelize 2.0.0 版本發佈

Excelize Go 語言 Excel 文檔類庫

Excelize 是 Go 語言編寫的一個用來操做 Office Excel 文檔類庫,基於 ECMA-376 OOXML Spec。可使用它來讀取、寫入 XLSX 文件,相比較其餘的開源類庫,Excelize 支持操做帶有數據透視表、切片器、圖表與圖片的 Excel 並支持向 Excel 中插入圖片與建立簡單圖表,可應用於各類報表系統中。git

GitHub: github.com/360EntSecGr…github

2019 年 4 月 23 日, 社區正式發佈了 2.0.0 版本,該版本包含了不少新功能、錯誤修復和性能優化。下面是有關該版本更新內容的摘要,完整的更改列表可查看 change log.性能優化

Release Notes

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

API 更改

下表列出了 v2.0.0 相比較於 v1.4.1 版本,API 的更改狀況:佈局

函數名 增長 error 返回值 行號計算方法變動* 刪除 新增
ToALphaString × × ×
TitleToNumber × × ×
SplitCellName × × ×
JoinCellName × × ×
ColumnNameToNumber × × ×
ColumnNumberToName × × ×
CellNameToCoordinates × × ×
CoordinatesToCellName × × ×
DuplicateRowTo × × ×
SetCellFloat × × ×
SetCellStyle × × ×
InsertCol × × ×
RemoveCol × × ×
RemoveRow × ×
InsertRow × ×
DuplicateRow × × ×
SetRowHeight × × ×
GetRowHeight × × ×
GetCellValue × × ×
GetCellFormula × × ×
GetCellHyperLink × × ×
SetCellHyperLink × × ×
SetCellInt × × ×
SetCellBool × × ×
SetCellStr × × ×
SetCellDefault × × ×
GetCellStyle × × ×
SetCellValue × × ×
MergeCell × × ×
SetSheetRow × × ×
SetRowVisible × ×
GetRowVisible × ×
SetRowOutlineLevel × ×
GetRowOutlineLevel × ×
GetRows × × ×
Columns × × ×
SearchSheet × × ×
GetPicture × × ×
AutoFilter × × ×
GetColVisible × × ×
SetColVisible × × ×
GetColOutlineLevel × × ×
SetColOutlineLevel × × ×
SetColWidth × × ×
GetColWidth × × ×
GetMergeCells × × ×
ProtectSheet × × ×
UnprotectSheet × × ×
UpdateLinkedValue × × ×
SetSheetVisible × × ×
adjustHelper × × ×
adjustMergeCells × × ×
adjustAutoFilter × × ×
prepareCell × × ×
setDefaultTimeStyle × × ×
timeToExcelTime × × ×
addDrawingChart × × ×
addDrawingVML × × ×
addDrawingPicture × × ×
getTotalRowsCols × × ×
checkRow × × ×
addDrawingShape × × ×
addTable × × ×
workSheetReader × × ×
copySheet × × ×

* 從版本 v2.0.0 開始,全部行操做方法都使用從 1 開始的 Excel 行編號,早期版本中某些方法中的基於 0 的行編號將再也不使用,參考相關 issue #349性能

新增功能

  • 新增 DuplicateRowTo() 方法, 支持根據給定的工做表名稱(大小寫敏感)和行號,在指定行後複製該行
  • 工做表頁面佈局設置函數 SetPageLayout() 新增對頁面佈局方向設置的支持,解決了相關 issue #318
  • 工做表頁面佈局設置函數 SetPageLayout() 新增對頁面紙張大小設置的支持

問題修復

  • 修復部分狀況下,在樣式格式中未指定單元格顏色填充時,建立了空白填充的問題
  • 修復當工做表數據驗證公式超過 225 個字符時,文件打開失敗的問題,解決了相關 issue #339
  • 修復部分狀況下,刪除帶有公式的單元格會致使文件損壞的問題,解決了相關 issue #346
  • 修復經過獲取批註函數 GetComment(),從包含多個工做表的工做簿獲取批註時,返回了錯誤的工做表名稱的問題,解決了相關 issue #345
  • 修復獲取工做表所有單元格函數 GetRows() 返回多餘的列的問題
  • 修復部分狀況下刪除包含公式的工做表引發文檔損壞的問題

性能提高

  • 單元格賦值系列函數、添加批註、圖片、圖表、超連接和形狀函數的性能,均得到了大幅提高
  • 新增重複圖片檢查,將用添加引用代替添加劇復圖片,解決了相關 issue #359

下圖是 v1.4.1 和 v2.0.0 版本下建立 12800 行 50 列工做表所執行時間和內存使用狀況:單元測試

Excelize Go 語言 Excel 文檔類庫 v1.4.1 和 v2.0.0 性能對比

其餘

  • 文檔內容更新與修正
  • 完善單元測試,增長 go1.12 版本下的單元測試
相關文章
相關標籤/搜索