Go 語言 Excel 類庫 Excelize 2.0.0 版本發(fā)布

Excelize: Go 語言 Excel 文檔基礎(chǔ)庫

Excelize 是 Go 語言編寫的用于操作 Office Excel 文檔類庫,基于 ECMA-376 Office OpenXML 標(biāo)準(zhǔn)。可以使用它來讀取、寫入由 Microsoft Excel? 2007 及以上版本創(chuàng)建的 XLSX 文檔。相比較其他的開源類庫,Excelize 支持寫入原本帶有圖片(表)、透視表和切片器等復(fù)雜樣式的文檔,還支持向 Excel 文檔中插入圖片與圖表,并且在保存后不會(huì)丟失文檔原有樣式,可以應(yīng)用于各類報(bào)表系統(tǒng)中。

2019年4月23日, 社區(qū)正式發(fā)布了 2.0.0 版本,該版本包含了很多新功能、錯(cuò)誤修復(fù)和性能優(yōu)化。下面是有關(guān)該版本更新內(nèi)容的摘要,完整的更改列表可查看change log.

Release Notes

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

API 更改

下表列出了 v2.0.0 相比較于 v1.4.1 版本,API 的更改情況:

函數(shù)名 增加 error 返回值 行號(hào)計(jì)算方法變更* 刪除 新增
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 行編號(hào),早期版本中某些方法中的基于 0 的行編號(hào)將不再使用,參考相關(guān) issue #349。

新增功能

  • 新增 DuplicateRowTo() 方法, 支持根據(jù)給定的工作表名稱(大小寫敏感)和行號(hào),在指定行后復(fù)制該行
  • 工作表頁面布局設(shè)置函數(shù) SetPageLayout() 新增對頁面布局方向設(shè)置的支持,解決了相關(guān) issue #318
  • 工作表頁面布局設(shè)置函數(shù) SetPageLayout() 新增對頁面紙張大小設(shè)置的支持

問題修復(fù)

  • 修復(fù)部分情況下,在樣式格式中未指定單元格顏色填充時(shí),創(chuàng)建了空白填充的問題
  • 修復(fù)當(dāng)工作表數(shù)據(jù)驗(yàn)證公式超過 225 個(gè)字符時(shí),文件打開失敗的問題,解決了相關(guān) issue #339
  • 修復(fù)部分情況下,刪除帶有公式的單元格會(huì)導(dǎo)致文件損壞的問題,解決了相關(guān) issue #346
  • 修復(fù)通過獲取批注函數(shù) GetComment(),從包含多個(gè)工作表的工作簿獲取批注時(shí),返回了錯(cuò)誤的工作表名稱的問題,解決了相關(guān) issue #345
  • 修復(fù)獲取工作表全部單元格函數(shù) GetRows() 返回多余的列的問題
  • 修復(fù)部分情況下刪除包含公式的工作表引起文檔損壞的問題

性能提升

  • 單元格賦值系列函數(shù)、添加批注、圖片、圖表、超鏈接和形狀函數(shù)的性能,均獲得了大幅提升
  • 新增重復(fù)圖片檢查,將用添加引用代替添加重復(fù)圖片,解決了相關(guān) issue #359

下圖是 v1.4.1 和 v2.0.0 版本下創(chuàng)建 12800 行 50 列工作表所執(zhí)行時(shí)間和內(nèi)存使用情況:

Excelize v1.4.1 VS v2.0.0

其他

  • 文檔內(nèi)容更新與修正
  • 完善單元測試,增加 go1.12 版本下的單元測試
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容