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

Excelize?是 Go 語(yǔ)言編寫的用于操作 Office Excel 文檔基礎(chǔ)庫(kù),基于 ECMA-376,ISO/IEC 29500 國(guó)際標(biāo)準(zhǔn)??梢允褂盟鼇碜x取、寫入由 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 語(yǔ)言最受歡迎的 Excel 文檔基礎(chǔ)庫(kù)。
開源代碼
GitHub:?github.com/xuri/excelize
中文文檔:?xuri.me/excelize/zh-hans
2022年1月3日,社區(qū)正式發(fā)布了 2.5.0 版本,該版本包含了多項(xiàng)新增功能、錯(cuò)誤修復(fù)和兼容性提升優(yōu)化。此版本中最顯著的變化包括:
兼容性提示
打開已有工作簿或在獲取行迭代器后,需要調(diào)用對(duì)應(yīng)的?
Close
?函數(shù)關(guān)閉工作簿和數(shù)據(jù)流修改?
ReadZipReader
?為?File
?的實(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:?
SetAppProps
?和?GetAppProps
?支持設(shè)置與獲取工作簿應(yīng)用程序?qū)傩? 相關(guān) issue #1095GetCellValue
,?GetRows
,?GetCols
,?Rows
?和?Cols
?支持指定是否讀取單元格原始值而不應(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 #1017AddShape
?支持設(shè)置形狀輪廓線條寬度, 相關(guān) issue #262新增文檔打開選項(xiàng)?
UnzipXMLSizeLimit
?以支持指定打開每個(gè)工作表以及共享字符表時(shí)的內(nèi)存解壓上限創(chuàng)建樣式時(shí),若給定的自定義數(shù)字格式無(wú)效,將返回錯(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
頁(yè)眉頁(yè)腳字符數(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)體中文、英語(yǔ)、法語(yǔ)、俄語(yǔ)、日語(yǔ)、韓語(yǔ)、阿拉伯語(yǔ)、德語(yǔ)和西班牙語(yǔ)的多國(guó)語(yǔ)言文檔網(wǎng)站更新