Excelize 發(fā)布 2.6.0 版本,功能強(qiáng)大的 Excel 文檔基礎(chǔ)庫(kù)

Excelize?是 Go 語(yǔ)言編寫(xiě)的用于操作 Office Excel 文檔基礎(chǔ)庫(kù),基于 ECMA-376,ISO/IEC 29500 國(guó)際標(biāo)準(zhǔn)??梢允褂盟鼇?lái)讀取、寫(xiě)入由 Microsoft Excel? 2007 及以上版本創(chuàng)建的電子表格文檔。支持 XLAM / XLSM / XLSX / XLTM / XLTX 等多種文檔格式,高度兼容帶有樣式、圖片(表)、透視表、切片器等復(fù)雜組件的文檔,并提供流式讀寫(xiě) API,用于處理包含大規(guī)模數(shù)據(jù)的工作簿??蓱?yīng)用于各類(lèi)報(bào)表平臺(tái)、云計(jì)算、邊緣計(jì)算等系統(tǒng)。入選 2020 Gopher China - Go 領(lǐng)域明星開(kāi)源項(xiàng)目(GSP)、2018 年開(kāi)源中國(guó)碼云最有價(jià)值開(kāi)源項(xiàng)目?GVP?(Gitee Most Valuable Project),目前已成為 Go 語(yǔ)言最受歡迎的 Excel 文檔基礎(chǔ)庫(kù)。
開(kāi)源代碼
GitHub:?github.com/xuri/excelize
Gitee:?gitee.com/xurime/excelize
中文文檔:?xuri.me/excelize/zh-hans
2022年4月11日,社區(qū)正式發(fā)布了 2.6.0 版本,該版本包含了多項(xiàng)新增功能、錯(cuò)誤修復(fù)和兼容性提升優(yōu)化。下面是有關(guān)該版本更新內(nèi)容的摘要,完整的更改列表可查看?changelog。
此版本中最顯著的變化包括:
兼容性提示
重命名導(dǎo)出常量?
NameSpaceDublinCoreMetadataIntiative
?為?NameSpaceDublinCoreMetadataInitiative
?以修復(fù)拼寫(xiě)錯(cuò)誤重命名導(dǎo)出變量?
ErrUnsupportEncryptMechanism
?為?ErrUnsupportedEncryptMechanism
重命名導(dǎo)出變量?
ErrDataValidationFormulaLenth
?為?ErrDataValidationFormulaLength
重命名導(dǎo)出變量?
ErrDefinedNameduplicate
?為?ErrDefinedNameDuplicate
移除了導(dǎo)出變量?
XMLHeaderByte
移除了設(shè)置數(shù)據(jù)數(shù)據(jù)驗(yàn)證列表函數(shù)?
SetSqrefDropList
?的第二個(gè)形參?isCurrentSheet
?和異常返回值移除了行迭代器中的導(dǎo)出字段?
TotalRows
新增功能
ProtectSheet
?新增支持通過(guò)指定的算法保護(hù)工作表,支持的算法包括: XOR、MD4、MD5、SHA1、SHA256、SHA384 和 SHA512UnprotectSheet
?支持通過(guò)指定第二個(gè)可選參數(shù)在移除工作表保護(hù)時(shí)驗(yàn)證密碼新增 71 項(xiàng)公式函數(shù): AVERAGEIFS, BETADIST, BETA.DIST, BETAINV, BETA.INV, BINOMDIST, BINOM.DIST, BINOM.DIST.RANGE, BINOM.INV, CHIINV, CHITEST, CHISQ.DIST, CHISQ.DIST.RT, CHISQ.INV, CHISQ.INV.RT, CHISQ.TEST, CONFIDENCE.T, CORREL, COVAR, COVARIANCE.P, CRITBINOM, ERROR.TYPE, EXPON.DIST, EXPONDIST, F.DIST, F.DIST.RT, FDIST, F.INV, F.INV.RT, FINV, FORMULATEXT, F.TEST, FTEST, GAMMA.DIST, GAMMADIST, GAMMA.INV, GAMMAINV, GAMMALN.PRECISE, GAUSS, HOUR, HYPGEOM.DIST, HYPGEOMDIST, INDIRECT, LOGINV, LOGNORM.DIST, LOGNORMDIST, LOGNORM.INV, MODE, MODE.MULT, MODE.SNGL, NEGBINOM.DIST, NEGBINOMDIST, PHI, SECOND, SERIESSUM, SUMIFS, SUMPRODUCT, SUMX2MY2, SUMX2PY2, SUMXMY2, T.DIST, T.DIST.2T, T.DIST.RT, TDIST, TIMEVALUE, T.INV, T.INV.2T, TINV, T.TEST, TTEST, TYPE
保存或另存為工作簿時(shí)增加對(duì)文件擴(kuò)展名進(jìn)行檢查
支持設(shè)置工作簿視圖模式和顯示/隱藏標(biāo)尺
引入依賴(lài)庫(kù) NFP (number format parser) 以增加對(duì)自定義時(shí)間、日期和文本類(lèi)型數(shù)字格式的支持,可對(duì)包含 19 種語(yǔ)言(南非荷蘭語(yǔ)、孟加拉語(yǔ)、漢語(yǔ)、英語(yǔ)、法語(yǔ)、德語(yǔ)、奧地利語(yǔ)、愛(ài)爾蘭語(yǔ)、意大利語(yǔ)、俄語(yǔ)、西班牙語(yǔ)、泰語(yǔ)、藏語(yǔ)、土耳其語(yǔ)、威爾士語(yǔ)、沃洛夫語(yǔ)、科薩語(yǔ)、彝語(yǔ)和祖魯語(yǔ))本地月份名稱(chēng)和 12 小時(shí)制格式的數(shù)字格式表達(dá)式進(jìn)行解析,相關(guān) issues #660, #764, #1093, #1112 和 #1133
新增 API:?
SetWorkbookPrOptions
?和?GetWorkbookPrOptions
?支持設(shè)置和獲取工作簿中的?FilterPrivacy
?與?CodeName
?屬性,以解除部分情況下向工作簿中嵌入 VBA 工程時(shí)的限制,相關(guān) issue #1148公式計(jì)算引擎支持中綴運(yùn)算符后包含無(wú)參數(shù)公式函數(shù)的計(jì)算
支持以文本形式讀取布爾型單元格的值
通過(guò)?
AddChart
?函數(shù)添加圓環(huán)圖時(shí),支持指定圓環(huán)圖內(nèi)徑大小,解決 issue #1172新增導(dǎo)出 4 項(xiàng)錯(cuò)誤信息?
ErrPasswordLengthInvalid
,?ErrUnsupportedHashAlgorithm
,?ErrUnsupportedNumberFormat
,?ErrWorkbookExt
,以便開(kāi)發(fā)者可根據(jù)不同的錯(cuò)誤類(lèi)型進(jìn)行采取相應(yīng)處理
兼容性提升
提升與 LibreOffice 電子表格應(yīng)用程序的兼容性,修復(fù)在 LibreOffice 中打開(kāi)的工作表名包含空格時(shí),自動(dòng)過(guò)濾器失效的問(wèn)題,解決 issue #1122
提升對(duì)工作簿中替代內(nèi)容的支持,保留工作簿、工作表以及 drawingML 中的替代內(nèi)容
提升與頁(yè)面設(shè)置中打印質(zhì)量 DPI 設(shè)置屬性的兼容性
問(wèn)題修復(fù)
修復(fù)另存為工作簿時(shí),頁(yè)面布局屬性丟失的問(wèn)題,解決 issue #1117
修復(fù)部分情況下,對(duì)工作表進(jìn)行修改后合并單元格區(qū)域未更新的問(wèn)題
修復(fù)樣式解析異常導(dǎo)致的粗體和部分其他字體樣式丟失問(wèn)題,解決 issue #1119
修復(fù)部分情況下將文檔保存為 XLAM / XLSM / XLTM / XLTX 格式后文檔損壞的問(wèn)題
單元格樣式支持繼承行/列樣式,以修復(fù)對(duì)工作表進(jìn)行修改后合并單元格區(qū)域單元格樣式不正確的問(wèn)題,解決 issue #1129
修復(fù)部分情況下獲取單元格樣式 ID 錯(cuò)誤的問(wèn)題
修復(fù)編號(hào)為 42 的內(nèi)建數(shù)字格式定義錯(cuò)誤的問(wèn)題
修復(fù)部分情況下數(shù)字精度解析錯(cuò)誤的問(wèn)題
SetCellDefault
?支持設(shè)置非數(shù)字類(lèi)型單元格的值,解決 issue #1139修復(fù)部分情況下另存為工作簿時(shí),顯示或隱藏工作表標(biāo)簽屬性丟失的問(wèn)題,解決 issue #1160
修復(fù)部分情況下嵌套公式計(jì)算錯(cuò)誤的問(wèn)題,解決 issue #1164
修復(fù)部分情況下公式計(jì)算結(jié)果精度不準(zhǔn)確以及在 x86 和 arm64 架構(gòu) CPU 下公式計(jì)算結(jié)果精度不一致的問(wèn)題
修復(fù)部分情況下使用科學(xué)記數(shù)法表示的數(shù)值解析失敗的問(wèn)題
修復(fù)圖表軸最大值最小值為 0 時(shí)不起作用的問(wèn)題
性能優(yōu)化
提高使用行迭代器進(jìn)行流式讀取的性能,當(dāng)讀取包含大規(guī)模數(shù)據(jù)的電子表格文檔時(shí),內(nèi)存開(kāi)銷(xiāo)相較于上一版本降低最高約 50%,內(nèi)存垃圾回收次數(shù)降低約 80%
其他
Go Modules 依賴(lài)模塊更新
單元測(cè)試與文檔更新
包含簡(jiǎn)體中文、英語(yǔ)、法語(yǔ)、俄語(yǔ)、日語(yǔ)、韓語(yǔ)、阿拉伯語(yǔ)、德語(yǔ)和西班牙語(yǔ)的多國(guó)語(yǔ)言文檔網(wǎng)站更新