Excelize 發(fā)布 2.7.1 版本苛萎,Go 語言 Excel 文檔基礎(chǔ)庫
Excelize 是 Go 語言編寫的用于操作 Office Excel 文檔基礎(chǔ)庫,基于 ECMA-376检号,ISO/IEC 29500 國際標準首懈。可以使用它來讀取谨敛、寫入由 Microsoft Excel? 2007 及以上版本創(chuàng)建的電子表格文檔。支持 XLAM / XLSM / XLSX / XLTM / XLTX 等多種文檔格式滤否,高度兼容帶有樣式脸狸、圖片(表)、透視表、切片器等復雜組件的文檔炊甲,并提供流式讀寫 API泥彤,用于處理包含大規(guī)模數(shù)據(jù)的工作簿∏浞龋可應(yīng)用于各類報表平臺吟吝、云計算、邊緣計算等系統(tǒng)颈娜。入選 2020 Gopher China - Go 領(lǐng)域明星開源項目(GSP)剑逃、2018 年開源中國碼云最有價值開源項目 GVP (Gitee Most Valuable Project),目前已成為 Go 語言最受歡迎的 Excel 文檔基礎(chǔ)庫官辽。
開源代碼
GitHub: github.com/xuri/excelize
Gitee: gitee.com/xurime/excelize
中文文檔: xuri.me/excelize/zh-hans
2023年4月10日蛹磺,社區(qū)正式發(fā)布了 2.7.1 版本,該版本包含了多項新增功能同仆、錯誤修復和兼容性提升優(yōu)化萤捆。下面是有關(guān)該版本更新內(nèi)容的摘要,完整的更改列表可查看 changelog俗批。
此版本中最顯著的變化包括:
兼容性提示
- 移除了
ChartLine
數(shù)據(jù)類型中的Color
字段 - 使用
RichTextRun
數(shù)據(jù)類型代替ShapeParagraph
- 使用
Fill
代替Shape
數(shù)據(jù)類型中的Color
字段 - 移除了已導出的數(shù)據(jù)類型
AutoFilterListOptions
- 將數(shù)據(jù)類型
TableOptions
重命名為Table
- 添加圖表函數(shù)
AddChart
改為使用ChartType
類型枚舉值指定圖表類型 - 修改了 7 個函數(shù)的簽名俗或,具體更改詳見官方文檔中的更新說明
新增功能
- 新增函數(shù)
SetSheetDimension
與GetSheetDimension
以支持設(shè)置與獲取工作表已用區(qū)域,相關(guān) issue #1463 - 創(chuàng)建樣式函數(shù)
NewStyle
現(xiàn)已支持 17 種漸變填充樣式 - 增加創(chuàng)建樣式數(shù)量上限至 65430
- 通過
AddPicture
添加圖片時岁忘,現(xiàn)已允許插入 BMP 格式圖片 - 函數(shù)
GetPictures
支持讀取被添加至同一單元格中的多張圖片 - 設(shè)置條件格式函數(shù)
SetConditionalFormat
支持設(shè)置帶有“如果為真則停止”和“圖標集”條件的條件格式規(guī)則 - 設(shè)置條件格式函數(shù)
SetConditionalFormat
支持設(shè)置在條件格式中使用帶有純色填充樣式的數(shù)據(jù)條辛慰,并支持指定數(shù)據(jù)條的顏色,相關(guān) issue #1462 - 添加圖表函數(shù)
AddChart
支持設(shè)置圖表中各個數(shù)據(jù)系列使用自定義填充顏色臭觉,相關(guān) issue #1474 - 添加圖表函數(shù)
AddChart
支持設(shè)置氣泡圖圖表中各個系列氣泡的大小 - 添加圖表函數(shù)
AddChart
支持設(shè)置子母餅圖和復合條餅圖中第二繪圖區(qū)域的數(shù)據(jù)系列 - 添加圖表函數(shù)
AddChart
支持為圖表中數(shù)據(jù)標簽設(shè)置自定義數(shù)字格式昆雀,相關(guān) issue #1499 - 創(chuàng)建表格函數(shù)
AddTable
支持在創(chuàng)建表格時指定是否包含標題行 - 創(chuàng)建表格函數(shù)
AddTable
創(chuàng)建表格時增加對表格名稱的校驗,并導出了錯誤常量ErrTableNameLength
蝠筑,相關(guān) issue #1468 - 函數(shù)
AutoFilter
支持為篩選范圍內(nèi)的多個列設(shè)置篩選條件 - 計算單元格的值函數(shù)
CalcCellValue
現(xiàn)已支持指定是否為公式計算結(jié)果應(yīng)用數(shù)字格式 - 計算單元格的值函數(shù)
CalcCellValue
對于以下公式函數(shù)加入了雙字節(jié)字符的支持:LEFT, LEN, LENB, MID, MIDB, RIGHT 和 RIGHTB狞膘,相關(guān) issue #1476 - 計算單元格的值函數(shù)
CalcCellValue
函數(shù)對于存在錯誤的公式將在計算結(jié)果中返回公式錯誤代碼,并將詳細錯誤信息在 error 數(shù)據(jù)類型的返回值中返回什乙,相關(guān) issue #1490 - 對輸入圖片文件的擴展名調(diào)整為大小寫不敏感挽封,相關(guān) issue #1503
- 使用流式寫入器流式按行賦值時,對于值為 nil 的單元格將會跳過生成該單元格臣镣,相關(guān) issue #756
- 獲取超鏈接
GetCellHyperLink
函數(shù)支持讀取合并單元格中的超鏈接 - 添加了新的導出類型
ChartType
以表示圖表類型枚舉
兼容性提升
- 兼容帶有函數(shù)組的工作簿
- 兼容帶有嚴格模式 XML 命名空間地址的工作簿主題辅愿,相關(guān) issue #1447
- 提高了與文檔內(nèi)部不含工作簿關(guān)系部件工作簿的兼容性,以修復打開此類工作簿可能出現(xiàn)的 panic
問題修復
- 修復了特定情況下讀取日期時間類型單元格的值存在精度誤差的問題
- 修復了特定情況下當修改原本存儲了日期時間類型的單元格為文本類型值忆某,修改后單元格數(shù)據(jù)類型有誤的問題点待,解決 issue #1464
- 修復了部分情況下公式計算結(jié)果為空的問題,解決 issue #1469
- 修復了設(shè)置數(shù)據(jù)條類型條件格式時弃舒,指定自定義最大/最小值無效的問題癞埠,解決 issue #1492
- 修復了打開行高或列寬為 0 的工作表状原,保存后行高列寬設(shè)置失效的問題,解決 issue #1461
- 提高了讀取帶有空白字符共享字符串表索引值的兼容性苗踪,解決 issue #1508
性能優(yōu)化
- 提高了應(yīng)用帶有自定義月份數(shù)字格式的速度颠区,相關(guān) issue #1455
- 大幅提高了對于帶有合并單元格工作表的處理速度,相關(guān) issue #1448
其他
- Go Excelize 提供了支持 WebAssembly / Javascript 環(huán)境的 excelize-wasm NPM 包
- Go Modules 依賴模塊更新
- 單元測試與文檔更新
- 優(yōu)化內(nèi)部變量與函數(shù)命名
- 包含簡體中文通铲、英語毕莱、法語、俄語颅夺、日語朋截、韓語、阿拉伯語碗啄、德語和西班牙語的多國語言文檔網(wǎng)站更新
致謝
感謝 Excelize 的所有貢獻者质和,以下是為此版本提交代碼的貢獻者列表:
- liron-l (Liron Levin)
- nathj07 (Nathan Davies)
- Josh-Weston (Josh Weston)
- jaby
- FlowingSPDG (Shugo Kawamura)
- barismar (Baris Mar Aziz)
- doingNobb (張濤)
- rpoetrap (Rizki Putra)
- huangshaokun
- CHANTXU64 (ChantXu64)
- playGitboy