Excelize 發(fā)布 2.7.1 版本,Go 語言 Excel 文檔基礎(chǔ)庫

Excelize 是 Go 語言編寫的用于操作 Office Excel 文檔基礎(chǔ)庫,基于 ECMA-376,ISO/IEC 29500 國際標(biāo)準(zhǔn)??梢允褂盟鼇碜x取、寫入由 Excel、WPS、OpenOffice 等電子表格辦公應(yīng)用創(chuàng)建的電子表格文檔。支持 XLAM / XLSM / XLSX / XLTM / XLTX 等多種文檔格式,高度兼容帶有樣式、圖片(表)、透視表、切片器等復(fù)雜組件的文檔,并提供流式讀寫 API,用于處理包含大規(guī)模數(shù)據(jù)的工作簿??蓱?yīng)用于各類報表平臺、云計(jì)算、邊緣計(jì)算等系統(tǒng)。入選 2020 Gopher China - Go 領(lǐng)域明星開源項(xiàng)目(GSP)、2018 年開源中國碼云最有價值開源項(xiàng)目 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 版本,該版本包含了多項(xiàng)新增功能、錯誤修復(fù)和兼容性提升優(yōu)化。下面是有關(guān)該版本更新內(nèi)容的摘要,完整的更改列表可查看?changelog。
此版本中最顯著的變化包括:
兼容性提示
移除了?
ChartLine
?數(shù)據(jù)類型中的?Color
?字段使用?
RichTextRun
?數(shù)據(jù)類型代替?ShapeParagraph
使用?
Fill
?代替?Shape
?數(shù)據(jù)類型中的?Color
?字段移除了已導(dǎo)出的數(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è)置帶有“如果為真則停止”和“圖標(biāo)集”條件的條件格式規(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è)置子母餅圖和復(fù)合條餅圖中第二繪圖區(qū)域的數(shù)據(jù)系列添加圖表函數(shù)?
AddChart
?支持為圖表中數(shù)據(jù)標(biāo)簽設(shè)置自定義數(shù)字格式,相關(guān) issue #1499創(chuàng)建表格函數(shù)?
AddTable
?支持在創(chuàng)建表格時指定是否包含標(biāo)題行創(chuàng)建表格函數(shù)?
AddTable
?創(chuàng)建表格時增加對表格名稱的校驗(yàn),并導(dǎo)出了錯誤常量?ErrTableNameLength
,相關(guān) issue #1468函數(shù)?
AutoFilter
?支持為篩選范圍內(nèi)的多個列設(shè)置篩選條件計(jì)算單元格的值函數(shù)?
CalcCellValue
?現(xiàn)已支持指定是否為公式計(jì)算結(jié)果應(yīng)用數(shù)字格式計(jì)算單元格的值函數(shù)?
CalcCellValue
?對于以下公式函數(shù)加入了雙字節(jié)字符的支持:LEFT, LEN, LENB, MID, MIDB, RIGHT 和 RIGHTB,相關(guān) issue #1476計(jì)算單元格的值函數(shù)?
CalcCellValue
?函數(shù)對于存在錯誤的公式將在計(jì)算結(jié)果中返回公式錯誤代碼,并將詳細(xì)錯誤信息在 error 數(shù)據(jù)類型的返回值中返回,相關(guān) issue #1490對輸入圖片文件的擴(kuò)展名調(diào)整為大小寫不敏感,相關(guān) issue #1503
使用流式寫入器流式按行賦值時,對于值為 nil 的單元格將會跳過生成該單元格,相關(guān) issue #756
獲取超鏈接?
GetCellHyperLink
?函數(shù)支持讀取合并單元格中的超鏈接添加了新的導(dǎo)出類型?
ChartType
?以表示圖表類型枚舉
兼容性提升
兼容帶有函數(shù)組的工作簿
兼容帶有嚴(yán)格模式 XML 命名空間地址的工作簿主題,相關(guān) issue #1447
提高了與文檔內(nèi)部不含工作簿關(guān)系部件工作簿的兼容性,以修復(fù)打開此類工作簿可能出現(xiàn)的 panic
問題修復(fù)
修復(fù)了特定情況下讀取日期時間類型單元格的值存在精度誤差的問題
修復(fù)了特定情況下當(dāng)修改原本存儲了日期時間類型的單元格為文本類型值,修改后單元格數(shù)據(jù)類型有誤的問題,解決 issue #1464
修復(fù)了部分情況下公式計(jì)算結(jié)果為空的問題,解決 issue #1469
修復(fù)了設(shè)置數(shù)據(jù)條類型條件格式時,指定自定義最大/最小值無效的問題,解決 issue #1492
修復(fù)了打開行高或列寬為 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 的所有貢獻(xiàn)者,以下是為此版本提交代碼的貢獻(xiàn)者列表:
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