Excelize 2.5.0 正式發(fā)布,這些新增功能值得關(guān)注

Excelize 2.5.0 正式發(fā)布

Excelize 是 Go 語言編寫的用于操作 Office Excel 文檔基礎(chǔ)庫,基于 ECMA-376,ISO/IEC 29500 國(guó)際標(biāo)準(zhǔn)。可以使用它來讀取、寫入由 Microsoft Excel? 2007 及以上版本創(chuàng)建的電子表格文檔。支持 XLSX / XLSM / XLTM 等多種文檔格式,高度兼容帶有樣式、圖片(表)、透視表、切片器等復(fù)雜組件的文檔,并提供流式讀寫 API,用于處理包含大規(guī)模數(shù)據(jù)的工作簿??蓱?yīng)用于各類報(bào)表平臺(tái)、云計(jì)算、邊緣計(jì)算等系統(tǒng)。入選 2020 Gopher China - Go 領(lǐng)域明星開源項(xiàng)目(GSP)、2018 年開源中國(guó)碼云最有價(jià)值開源項(xiàng)目 GVP (Gitee Most Valuable Project),目前已成為 Go 語言最受歡迎的 Excel 文檔基礎(chǔ)庫。

開源代碼

GitHub: github.com/xuri/excelize

Gitee: gitee.com/xurime/excelize

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

2022年1月3日,社區(qū)正式發(fā)布了 2.5.0 版本,該版本包含了多項(xiàng)新增功能、錯(cuò)誤修復(fù)和兼容性提升優(yōu)化。下面是有關(guān)該版本更新內(nèi)容的摘要,完整的更改列表可查看 changelog。

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

兼容性提示

  • 打開已有工作簿或在獲取行迭代器后,需要調(diào)用對(duì)應(yīng)的 Close 函數(shù)關(guān)閉工作簿和數(shù)據(jù)流
  • 修改 ReadZipReaderFile 的實(shí)現(xiàn), 支持通過選項(xiàng)指定解壓至內(nèi)存或文件系統(tǒng)
  • 移除了不必要的導(dǎo)出變量 XMLHeader,可使用 encoding/xml 包的 xml.Header 代替
  • 移除了不再使用的導(dǎo)出變量 ErrToExcelTime

新增功能

  • 新增 API: SetRowStyle 支持設(shè)置整行樣式, 相關(guān) issue #990
  • 新增 API: GetCellType 支持獲取單元格數(shù)據(jù)類型, 相關(guān) issue #417 和 #520
  • 新增 API: SetAppPropsGetAppProps 支持設(shè)置與獲取工作簿應(yīng)用程序?qū)傩? 相關(guān) issue #1095
  • GetCellValue, GetRows, GetCols, RowsCols 支持指定是否讀取單元格原始值而不應(yīng)用數(shù)字格式表達(dá)式, 相關(guān) issue #621
  • 新增 95 項(xiàng)公式函數(shù): ACCRINT, ACCRINTM, ADDRESS, AMORDEGRC, AMORLINC, AVEDEV, AVERAGEIF, CHIDIST, CONFIDENCE, CONFIDENCE.NORM, COUNTIF, COUNTIFS, COUPDAYBS, COUPDAYS, COUPDAYSNC, COUPNCD, COUPNUM, COUPPCD, DATEVALUE, DAY, DAYS, DELTA, DEVSQ, DISC, DURATION, ERF, ERF.PRECISE, ERFC, ERFC.PRECISE, GEOMEAN, GESTEP, IFNA, IFS, INDEX, INTRATE, ISFORMULA, ISLOGICAL, ISREF, ISOWEEKNUM, MATCH, MAXA, MAXIFS, MDURATION, MINIFS, MINUTE, MONTH, ODDFPRICE, PERCENTILE.EXC, PERCENTRANK.EXC, PERCENTRANK.INC, PERCENTRANK, PRICE, PRICEDISC, PRICEMAT, PV, QUARTILE.EXC, RANK, RANK.EQ, RATE, RECEIVED, RRI, SHEETS, SLN, STANDARDIZE, STDEV.P, STDEVP, SWITCH, SYD, TBILLEQ, TBILLPRICE, TBILLYIELD, TEXTJOIN, TIME, TRANSPOSE, TRIMMEAN, VALUE, VAR, VAR.S, VARA, VARPA, VDB, WEEKDAY, WEIBULL, WEIBULL.DIST, XIRR, XLOOKUP, XNPV, XOR, YEAR, YEARFRAC, YIELD, YIELDDISC, YIELDMAT, Z.TEST, ZTEST, 相關(guān) issue #65 和 #1002
  • 公式計(jì)算引擎支持嵌套 IF 函數(shù), 相關(guān) issue #987
  • 公式計(jì)算引擎支持共享公式, 相關(guān) issue #844
  • 公式計(jì)算引擎支持文本比較運(yùn)算, 相關(guān) issue #998
  • 支持在數(shù)據(jù)驗(yàn)證中使用公式, 相關(guān) issue #1012
  • 支持文檔壓縮比限制,避免潛在的安全風(fēng)險(xiǎn)
  • SetCellFormula 支持設(shè)置共享公式
  • UpdateLinkedValue 在清除單元格計(jì)算緩存時(shí)將跳過 macro sheet, 相關(guān) issue #1014
  • 修復(fù)部分情況下,由于內(nèi)部依賴關(guān)系計(jì)算錯(cuò)誤導(dǎo)致的 AddPicture 重復(fù)創(chuàng)建圖片的問題, 相關(guān) issue #1017
  • AddShape 支持設(shè)置形狀輪廓線條寬度, 相關(guān) issue #262
  • 新增文檔打開選項(xiàng) UnzipXMLSizeLimit 以支持指定打開每個(gè)工作表以及共享字符表時(shí)的內(nèi)存解壓上限
  • 創(chuàng)建樣式時(shí),若給定的自定義數(shù)字格式無效,將返回錯(cuò)誤提示,相關(guān) issue #1028
  • 流式寫入現(xiàn)已支持設(shè)置行樣式
  • 流式寫入器將為時(shí)間類型單元格創(chuàng)建時(shí)間數(shù)字格式樣式,相關(guān) issue #1107
  • 支持設(shè)置數(shù)據(jù)透視表報(bào)表布局“以壓縮形式顯示”或“以大綱形式顯示”, 相關(guān) issue #1029
  • 行/列迭代器支持獲取當(dāng)前行/列序號(hào)和行/列總數(shù), 相關(guān) issue #1054
  • 使用 time.Time 類型參數(shù)進(jìn)行單元格賦值時(shí),支持時(shí)區(qū)位置, 相關(guān) issue #1069
  • 新增導(dǎo)出 7 項(xiàng)錯(cuò)誤信息,以便開發(fā)者可根據(jù)不同的錯(cuò)誤類型進(jìn)行采取相應(yīng)處理

兼容性提升

  • 提升與內(nèi)部帶有 r="0" 屬性工作表的兼容性
  • 保留 XML 控制字符
  • 提升樣式設(shè)置與 Apple Numbers 的兼容性, 相關(guān) issue #1059
  • 頁眉頁腳字符數(shù)限制兼容多字節(jié)字符, 相關(guān) issue #1061
  • 設(shè)置單元格時(shí)將保留水平制表符, 相關(guān) issue #1108

問題修復(fù)

  • 修復(fù)部分情況下刪除數(shù)據(jù)驗(yàn)證失敗的問題, 解決 issue #979
  • 修復(fù)部分情況下設(shè)置數(shù)據(jù)驗(yàn)證下拉列表失敗的問題, 解決 issue #986
  • 修復(fù)公式計(jì)算引擎 LOOKUP 函數(shù)部分情況下計(jì)算結(jié)果錯(cuò)誤的問題, 解決 issue #994
  • 修復(fù)公式計(jì)算引擎 LOOKUP 僅支持完全匹配的問題, 解決 issue #997
  • 修復(fù)公式計(jì)算引擎百分比計(jì)算錯(cuò)誤的問題, 解決 issue #993
  • 修復(fù)特定情況下單元格讀取異常導(dǎo)致的 panic
  • 修復(fù)設(shè)置“后 N 項(xiàng)”條件格式失敗的問題
  • 修復(fù)部分情況下時(shí)間解析錯(cuò)誤的問題, 解決 issue #1026 和 #1030
  • 修復(fù)科學(xué)記數(shù)法數(shù)字格式的單元格值解析異常的問題,解決 issue #1027
  • 修復(fù)部分情況下浮點(diǎn)型數(shù)據(jù)讀取異常的問題,解決 issue #1031
  • 修復(fù)部分情況下刪除工作表失敗的問題
  • 修復(fù)內(nèi)建時(shí)間數(shù)字格式解析異常問題,解決 issue #1060
  • 修復(fù)部分情況下新建樣式時(shí)返回樣式 ID 異常的問題
  • 修復(fù)部分情況下刪除行列后合并單元格區(qū)域異常的問題

性能優(yōu)化

  • 合并單元格性能大幅提升,耗時(shí)降低 90%
  • 提高流式讀取性能,當(dāng)內(nèi)部 XML 較大時(shí),將共享字符串表解壓縮到系統(tǒng)臨時(shí)文件,內(nèi)存使用量減少約 60%, 相關(guān) issue #1096
  • 優(yōu)化讀取工作表列表性能
  • 優(yōu)化設(shè)置列樣式存儲(chǔ),縮小生成的文檔體積,解決 issue #1057

其他

  • Go Modules 依賴模塊更新
  • 單元測(cè)試與文檔更新
  • 包含簡(jiǎn)體中文、英語、法語、俄語、日語、韓語、阿拉伯語、德語和西班牙語的多國(guó)語言文檔網(wǎng)站更新
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

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

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