Excelize v2.5.0
《Excelize 權威指南》圖書出版,網路購買方式:人民郵電出版社 | 異步社區 | 天貓 | 京東 | 當當 | 亞馬遜 | 微店 | 抖音
- 釋出日期: 2022年1月3日
- GitHub Release: https://github.com/xuri/excelize/releases/tag/v2.5.0
版本說明
此版本中最顯著的變化包括:
相容性提示
- 開啓已有活頁簿或在獲取列迭代器後,需要調用對應的
Close
關閉活頁簿和資料流 - 修改
ReadZipReader
為File
的實現, 支援透過選項指定解壓至記憶體或文件系統 - 移除了不必要的導出變數
XMLHeader
,可使用encoding/xml
包的xml.Header
代替 - 移除了不再使用的導出變數
ErrToExcelTime
新增功能
- 新增 API:
SetRowStyle
支援設定整列樣式, 相關 issue #990 - 新增 API:
GetCellType
支援獲取儲存格資料型別, 相關 issue #417 和 #520 - 新增 API:
SetAppProps
和GetAppProps
支援設定與獲取活頁簿應用程式屬性, 相關 issue #1095 GetCellValue
,GetRows
,GetCols
,Rows
和Cols
支援指定是否讀取儲存格原始值而不應用數字格式表達式, 相關 issue #621- 新增 95 項公式函式: 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, 相關 issue #65 和 #1002
- 公式計算引擎支援嵌套
IF
函式, 相關 issue #987 - 公式計算引擎支援共享公式, 相關 issue #844
- 公式計算引擎支援文本比較運算, 相關 issue #998
- 支援在資料驗證中使用公式, 相關 issue #1012
- 支援文檔壓縮比限制,避免潛在的壓縮包炸彈攻擊
SetCellFormula
支援設定共享公式UpdateLinkedValue
在清除儲存格計算緩存時將跳過 macro sheet, 相關 issue #1014- 修復部分情況下,由於內部依賴關係計算錯誤導致的
AddPicture
重復創建圖片的問題, 相關 issue #1017 AddShape
支援設定圖形輪廓線條寬度, 相關 issue #262- 新增文檔開啓選項
UnzipXMLSizeLimit
以支援指定開啓每個工作表以及共享字符表時的記憶體解壓上限 - 創建樣式時,若給定的自訂數字格式無效,將返回錯誤提示,相關 issue #1028
- 流式寫入現已支援設定列樣式
- 流式寫入器將為時間型別儲存格創建時間數字格式樣式,相關 issue #1107
- 支援設定樞紐分析表報表佈局「以壓縮形式顯示」或「以大綱形式顯示」, 相關 issue #1029
- 列/欄迭代器支援獲取當前列/欄序號和列/欄總數, 相關 issue #1054
- 使用 time.Time 型別參數進行儲存格賦值時,支援時區位置, 相關 issue #1069
- 新增導出 7 項錯誤信息,以便開發者可根據不同的錯誤型別進行採取相應處理
相容性提升
- 提升與內部帶有
r="0"
屬性工作表的相容性 - 保留 XML 控制字符
- 提升樣式設定與 Apple Numbers 表格應用程式的相容性, 相關 issue #1059
- 頁首頁尾字符數限制兼容多位元組字符, 相關 issue #1061
- 設定儲存格時將保留水平制表符, 相關 issue #1108
問題修復
- 修復部分情況下刪除資料驗證失敗的問題, 解決 issue #979
- 修復部分情況下設定資料驗證下拉列表失敗的問題, 解決 issue #986
- 修復公式計算引擎
LOOKUP
函式部分情況下計算結果錯誤的問題, 解決 issue #994 - 修復公式計算引擎
LOOKUP
僅支援完全匹配的問題, 解決 issue #997 - 修復公式計算引擎百分比計算錯誤的問題, 解決 issue #993
- 修復特定情況下儲存格讀取異常導致的 panic
- 修復設定「後 N 項」條件式格式失敗的問題
- 修復部分情況下時間解析錯誤的問題, 解決 issue #1026 和 #1030
- 修復科學記數法數字格式的儲存格值解析異常的問題,解決 issue #1027
- 修復部分情況下浮點型資料讀取異常的問題,解決 issue #1031
- 修復部分情況下刪除工作表失敗的問題
- 修復內建時間數字格式解析異常問題,解決 issue #1060
- 修復部分情況下新增樣式時返回樣式 ID 異常的問題
- 修復部分情況下刪除行列後合併儲存格區域異常的問題
性能優化
- 合併儲存格性能大幅提升,耗時相較於上一版本降低約 90%
- 提高流式讀取性能,當內部 XML 較大時,將共享字符串表解壓縮到系統臨時文件,記憶體使用量相較於上一版本降低最高約 60%, 相關 issue #1096
- 優化讀取工作表列表性能
- 優化設定列樣式存儲,縮小生成的檔案體積,解決 issue #1057
其他
- Go Modules 依賴模塊更新
- 單元測試與文檔更新
- 包含簡體中文、英語、法語、俄語、日語、韓語、阿拉伯語、德語和西班牙語的多國語言文檔網站更新
致謝
感謝 Excelize 的所有貢獻者,以下是為此版本提交代碼的貢獻者列表:
- @bailantaotao (bailantaotao)
- @threeq (Conrad Dally)
- @raochq (raochangquan)
- @stanim (Stani)
- @tvso (Tammy)
- @Jerring
- @seanliang (Sean Liang)
- @oneweek20169902 (li)
- @mwiesenbauer (Michael Wiesenbauer)
- @Dokiys (Dokiy)
- jaby
- @vst93 (vst)