
Excelize 是 Go 語言撰寫的用于操作 Office Excel 檔案基礎庫,基于 ECMA-376,ISO/IEC 29500 國際標準,可以使用它來讀取、寫入由 Microsoft Excel? 2007 及以上版本創建的電子表格檔案,支持 XLSX / XLSM / XLTM 等多種檔案格式,高度兼容帶有樣式、圖片(表)、透視表、切片器等復雜組件的檔案,并提供流式讀寫 API,用于處理包含大規模資料的作業簿,可應用于各類報表平臺、云計算、邊緣計算等系統,入選 2020 Gopher China - Go 領域明星開源專案(GSP)、2018 年開源中國碼云最有價值開源專案 GVP (Gitee Most Valuable Project),目前已成為 Go 語言最受歡迎的 Excel 檔案基礎庫,
開源代碼
GitHub: github.com/xuri/excelize
Gitee: gitee.com/xurime/excelize
中文檔案: xuri.me/excelize/zh-hans
2022年1月3日,社區正式發布了 2.5.0 版本,該版本包含了多項新增功能、錯誤修復和兼容性提升優化,下面是有關該版本更新內容的摘要,完整的更改串列可查看 changelog,
此版本中最顯著的變化包括:
兼容性提示
- 打開已有作業簿或在獲取行迭代器后,需要呼叫對應的
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 #109
- 優化讀取作業表串列性能
- 優化設定列樣式存盤,縮小生成的檔案體積,解決 issue #1057
其他
- Go Modules 依賴模塊更新
- 單元測驗與檔案更新
- 包含簡體中文、英語、法語、俄語、日語、韓語、阿拉伯語、德語和西班牙語的多國語言檔案網站更新
出處:https://www.cnblogs.com/xuri
本作品由 Ri Xu 創作,采用知識共享署名-非商業性使用-禁止演繹 2.5 中國大陸許可協議進行許可, 歡迎轉載,但任何轉載必須保留完整文章,在顯要地方顯示署名以及原文鏈接,如您有任何疑問或者授權方面的協商,請 給我留言,
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/402414.html
標籤:其他
上一篇:Mybatis的聯合查詢
