Excelize 是 Go 語言編寫的用於操做 Office Excel 文檔基礎庫,基於 ECMA-376,ISO/IEC 29500 國際標準。可使用它來讀取、寫入由 Microsoft Excel™ 2007 及以上版本建立的電子表格文檔。支持 XLSX / XLSM / XLTM 等多種文檔格式,高度兼容帶有樣式、圖片(表)、透視表、切片器等複雜組件的文檔,並提供流式讀寫 API,用於處理包含大規模數據的工做簿。可應用於各種報表平臺、雲計算、邊緣計算等系統。入選 2020 Gopher China - Go 領域明星開源項目 (GSP)、 2018 開源中國碼雲 Gitee 最有價值開源項目 GVP,目前已成爲 Go 語言最受歡迎的 Excel 文檔基礎庫。git
開源代碼
GitHub: github.com/xuri/excelizegithub
Gitee: gitee.com/xurime/excelize瀏覽器
中文文檔: xuri.me/excelize/zh-hans性能優化
2021年4月19日,社區正式發佈了 2.4.0 版本,該版本包含了多項新增功能、錯誤修復和兼容性提高優化。下面是有關該版本更新內容的摘要,完整的更改列表可查看 changelog。函數
Release Notes
此版本中最顯著的變化包括:性能
兼容性提示
升級至該版本須要您使用的 Go 語言爲 1.15 或更高版本。單元測試
新增功能
- 新增
GetCellRichText
API,支持根據給定的工做表名稱獲取富文本
SetPageLayout
和 GetPageLayout
現已支持設置和獲取頁面打印縮放比例、指定單色打印、起始頁碼
SetSheetPrOptions
和 GetSheetPrOptions
現已支持設置和獲取工做表標籤頁顏色
SetCellHyperLink
支持設置屏幕提示文字與顯示文字,相關 issue #790
- 建立數據透視表時新增支持
ShowError
選項
- 流式 API 支持設置單元格公式, 相關 issue #625
- 公式計算引擎支持不等於運算符
- 嵌套公式函數如今支持將單元格引用用做參數
- 支持指定是否設置圖表數據系列格式爲自動填充顏色
- 新增 152 項公式函數支持: ATAN, AVERAGE, AVERAGEA, BESSELI, BESSELJ, BIN2DEC, BIN2HEX, BIN2OCT, BITAND, BITLSHIFT, BITOR, BITRSHIFT, BITXOR, CHAR, CHOOSE, CLEAN, CODE, COLUMN, COLUMNS, COMPLEX, CONCAT, CONCATENATE, COUNT, COUNTBLANK, CUMIPMT, CUMPRINC, DATE, DATEDIF, DB, DDB, DEC2BIN, DEC2HEX, DEC2OCT, DOLLARDE, DOLLARFR, EFFECT, ENCODEURL, EXACT, FALSE, FIND, FINDB, FISHER, FISHERINV, FIXED, FV, FVSCHEDULE, GAMMA, GAMMALN, HARMEAN, HEX2BIN, HEX2DEC, HEX2OCT, HLOOKUP, IF, IFERROR, IMABS, IMAGINARY, IMARGUMENT, IMCONJUGATE, IMCOS, IMCOSH, IMCOT, IMCSC, IMCSCH, IMDIV, IMEXP, IMLN, IMLOG10, IMLOG2, IMPOWER, IMPRODUCT, IMREAL, IMSEC, IMSECH, IMSIN, IMSINH, IMSQRT, IMSUB, IMSUM, IMTAN, IPMT, IRR, ISTEXT, ISPMT, KURT, LARGE, LEFT, LEFTB, LEN, LENB, LOOKUP, LOWER, MAX, MID, MIDB, MIN, MINA, MIRR, N, NOMINAL, NORM.DIST, NORMDIST, NORM.INV, NORMINV, NORM.S.DIST, NORMSDIST, NORM.S.INV, NORMSINV, NOT, NOW, NPER, NPV, OCT2BIN, OCT2DEC, OCT2HEX, PDURATION, PERCENTILE.INC, PERCENTILE, PERMUT, PERMUTATIONA, PMT, POISSON.DIST, POISSON, PPMT, PROPER, QUARTILE, QUARTILE.INC, REPLACE, REPLACEB, REPT, RIGHT, RIGHTB, ROMAN, ROW, ROWS, SHEET, SKEW, SMALL, STDEV, STDEV.S, STDEVA, SUBSTITUTE, T, TODAY, TRIM, TRUE, UNICHAR, UNICODE, UPPER, VAR.P, VARP, VLOOKUP
兼容性提高
- 當以
nil
做爲值調用 SetCellValue
設置單元格的值時,再也不爲單元格設置空白字符串而以空值代替,解決 issue #756
- 移除內部處理單元格填充顏色樣式時冗餘的 XML 可選空值解析標識
- 提高與 Google Sheets 離線瀏覽器擴展應用程序的兼容性,相關 issue #769
- 在篩選器對應的名稱中使用絕對引用以提高與 Apache OpenOffice 應用程序的兼容性,解決 issue #776
- 在流式解析工做表過程當中增長 XML 標籤關閉事件的處理,提高行/列迭代器讀取性能,修復部分狀況下讀取行數有誤的問題
- 提升工做簿內工做表文檔使用相對路徑的兼容性
- 避免建立重複的富文本樣式,解決 issue #787
- 提升工做簿內工做表文檔使用絕對路徑與 Windows 目錄分隔符的兼容性
問題修復
- 修復數值舍入精度問題 #764
- 添加並調整工做表字段的解析順序,修復部分狀況下生成的文檔損壞的問題 #766
- 修復
COTH
雙曲餘切三角函數計算有誤的問題
- 公式計算鏈增長對工做表的關聯處理,修復部分狀況下複製行致使的文檔損壞問題,解決 issue #774
- 刪除工做表時增長對名稱的處理,解決 issue #775
- 修復內部函數
newFills
和 parseToken
圈複雜度太高的問題
- 修復對工做表默認自定義行高的檢查
- 修復取消工做表中所有合併單元格時致使文檔損壞的問題, 解決 issue #782
- 修復部分狀況下篩選條件部分丟失的問題
- 修復當工做簿包含圖表工做表、對話工做表時,
UpdateLinkedValue
產生錯誤的問題
- 修復部分狀況下
GetColWidth
返回默認列寬錯誤的問題
- 修復沒法經過 Excel 電子表格應用程序向建立的數據透視表中添加時間軸與切片器的問題,解決 issue #804
- 設置名稱時內部的
localSheetId
屬性將使用 sheetIndex
,修正錯誤的工做表索引使用
- 修復部分狀況下保存後的文檔單元格鎖定或隱藏屬性可能丟失問題,解決 issue #809
- 修復流式寫入數據後調用普通 API 將致使流式寫入的丟失問題,解決 issue #813
- 修復負值圖表數據系列填充顏色丟失問題
性能優化
其餘
- Go Modules 依賴模塊更新
- 單元測試與文檔更新
- 包含簡體中文、英語、法語、俄語、日語、韓語、阿拉伯語、德語和西班牙語的多國語言文檔網站更新