Excelize 2.7.0 釋出, 2023 年首個更新
Excelize 是 Go 語言編寫的用於操作 Office Excel 文件基礎庫,基於 ECMA-376,ISO/IEC 29500 國際標準。可以使用它來讀取、寫入由 Microsoft Excel™ 2007 及以上版本建立的電子表格文件。支援 XLAM / XLSM / XLSX / XLTM / XLTX 等多種文件格式,高度相容帶有樣式、圖片 (表)、透視表、切片器等複雜元件的文件,並提供流式讀寫 API,用於處理包含大規模資料的工作簿。可應用於各類報表平臺、雲端計算、邊緣計算等系統。入選 2020 Gopher China - Go 領域明星開源專案 (GSP)、2018 年開源中國碼雲最有價值開源專案 GVP (Gitee Most Valuable Project),目前已成為 Go 語言最受歡迎的 Excel 文件基礎庫。
開原始碼
GitHub: github.com/xuri/excelize
中文文件: xuri.me/excelize/zh-hans
2023年1月9日,社群正式釋出了 2.7.0 版本,該版本包含了多項新增功能、錯誤修復和相容性提升最佳化。下面是有關該版本更新內容的摘要。
版本說明
此版本中最顯著的變化包括:
相容性提示
- 升級至該版本需要您使用的 Go 語言為 1.16 或更高版本,以遷移不再支援的標準庫
ioutil
- 當給定工作表名稱中存在無效字元時將返回錯誤,不再自動忽略無效字元
-
GetCellStyle
函式不再返回合併單元格區域左上角單元格的樣式 - 重新命名以下 5 個匯出資料型別和錯誤常量,具體更改詳見官方文件中的更新說明
- 移除了 54 項匯出型別,具體更改詳見官方文件中的更新說明
- 移除了 2 個匯出常量:
OrientationPortrait
和OrientationLandscape
- 修改了以下 21 個函式的簽名,使用結構體引用代替此前以 JSON 格式表示的選項引數,具體更改詳見官方文件中的更新說明
- 引入了 8 項新的函式代替現有函式,具體更改詳見官方文件中的更新說明
- 在
CellType
列舉值中新增CellTypeFormula
,CellTypeInlineString
,CellTypeSharedString
並移除了CellTypeString
- 對新增批註
AddComment
函式的簽名進行了更改,支援建立富文字批註,相關 issue #1204 - 當 XML 反序列化異常時將返回錯誤以代替輸出日誌,函式
GetComments
,GetDefaultFont
和SetDefaultFont
增加了 error 型別的錯誤返回值
新增功能
- 新增
GetDataValidations
和GetConditionalFormats
函式以支援獲取資料驗證設定和條件格式,相關 issue #827 - 新增
ProtectWorkbook
和UnprotectWorkbook
以提供工作簿保護設定支援 - 新增
SetSheetCol
函式以支援按列設定單元格的值,相關 issue #1247 - 新增
GetColStyle
函式以支援設定列樣式,相關 issue #1293 - 新增
SetSheetBackgroundFromBytes
函式以支援根據給定的圖片資料設定工作表背景圖片,相關 issue #1405 - 新增匯出變數
IndexedColorMapping
以支援內建索引顏色轉換 - 新增 20 項匯出型別:
AutoFilterListOptions
,AutoFilterOptions
,Chart
,ChartAxis
,ChartDimension
,ChartLegend
,ChartLine
,ChartMarker
,ChartPlotArea
,ChartSeries
,ChartTitle
,ConditionalFormatOptions
,PaneOptions
,Panes
,GraphicOptions
,Shape
,ShapeColor
,ShapeLine
,ShapeParagraph
和TableOptions
- 新增 2 項公式函式: AGGREGATE 和 SUBTOTAL
-
Save
、Write
和WriteTo
函式支援指定儲存選項,相關 issue #744 - 使用
AddChart
函式新增圖表時,支援為折線圖設定是否使用平滑折線,相關 issue #1290 - 使用
AddChart
函式新增圖表時,支援設定自定義折線圖線條顏色,相關 issue #1345 - 使用
AddChart
函式新增圖表時,支援設定自定義座標軸字型樣式,相關 issue #320 - 新增圖表函式
AddChart
支援建立三維折線圖 - 以下函式新增併發安全支援:
SetColWidth
、GetColWidth
、SetColVisible
、GetColVisible
、SetColStyle
和GetColStyle
- 設定樣式時,當給定的樣式 ID 不存在時將返回錯誤,相關 issue #1323
- 流式按行賦值時,若行號未遞增將返回錯誤,以避免生成的工作簿損壞,相關 issue #1139
- 按行流式寫入工作表時,支援透過指定
RowOpts
為單元格設定樣式,相關 issue #1354 - 支援流式設定窗格,相關 issue #1047
- 支援流式設定行內富文字單元格
- 支援流式插入分頁符
- 新增 7 項匯出錯誤資訊:
ErrUnprotectWorkbook
、ErrUnprotectWorkbookPassword
、ErrStreamSetPanes
、ErrSheetNameBlank
、ErrSheetNameInvalid
、ErrSheetNameLength
和ErrSheetNameSingleQuote
,以便開發者可根據不同的錯誤型別進行採取相應處理 - 新增 5 項匯出資料型別:
HeaderFooterOptions
、PageLayoutMarginsOptions
、PageLayoutOptions
、SheetPropsOptions
和ViewOptions
- 支援設定分級顯示的明細資料方向
- 支援讀取和設定單元格字型的主題顏色和色調,相關 issue #1369
- 支援讀取帶有符合 ISO 8061 標準的時間型別單元格的值
- 支援設定和讀取帶有內建顏色索引的字型顏色
- 工作簿關閉函式將清理由流式寫入器生成的磁碟快取檔案
- 支援新增或刪除列時自動調整受影響的列樣式
- 透過
AddPicture
新增圖片時,現已允許插入 SVG 格式圖片
相容性提升
- 流式寫入單元格時將以行內字元型別儲存字元型單元格的值,相關 issue #1377
- 儲存工作簿時將跳過工作表中的不帶有樣式和屬性的空白行,以減少生成文件的體積,相關 issue #1383
問題修復
- 修復部分情況下讀取帶有內建數字格式樣式的浮點數精度有誤問題,解決 issue #1328,#1368 和 #1373
- 修復部分情況下讀取帶有 AM/PM 數字格式樣式的單元格有誤問題,解決 issue #1338
- 修復部分情況下刪除批註時由於陣列下標越界導致的 panic,解決 issue #1343
- 修復部分情況下讀取單元格的值時出現 panic 的問題,解決 issue #1384 和 #1415
- 修復部分情況下誤將文字解析為浮點型數值的問題,解決 issue #1360
- 修復使用空字元建立工作表後生成的工作簿損壞問題,解決 issue #1361
- 修復向工作表新增圖片後,獲取該圖片內容為空的問題
- 修復部分情況下插入行列後生成的工作簿損壞問題
- 刪除單元格公式時將刪除公式計算鏈中的共享單元格引用,以修復部分情況下生成的文件損壞問題
- 修復部分情況下未對工作表名稱特殊字元及長度做正確處理的問題,解決 issue #1328
- 修復部分情況下公式函式
OR
計算結果有誤的問題 - 修復在帶有單一單元格區域引用的工作表中插入行列時,將收到異常的問題
- 修復獲取帶有單一單元格區域引用合併單元格區域時,收到異常的問題
- 修復部分情況下讀取富文字單元格的值不完整問題
- 修復流式寫入時未轉義 XML 字元導致的文件損壞問題,解決 issue #1391
- 修復公式計算函式 ADDRESS 在工作表名稱為空時計算結果有誤的問題,解決 issue #1396
- 修復部分情況下新增圖片結果有誤的問題,解決 issue #1404
效能最佳化
- 提高流式合併單元格效能,相較於上一版本,耗時最高降低約 90%,記憶體使用最高減少約 86%
- 最佳化按行流式寫入工作表
SetRow
函式的效能,相較於上一版本,耗時最高降低約 19%
其他
- Go Modules 依賴模組更新
- 單元測試與文件更新
- 最佳化內部變數與函式命名
- 包含簡體中文、英語、法語、俄語、日語、韓語、阿拉伯語、德語和西班牙語的多國語言文件網站更新
相關文章
- Excelize 2.5.0 釋出,2022 年首個更新Excelize
- 谷歌釋出2024年首個安全更新,修復Chrome六個高危漏洞谷歌Chrome
- 《Excelize 權威指南》新書釋出Excelize新書
- Excelize 釋出 2.6.1 版本,支援工作簿加密Excelize加密
- Spring Boot 2.7.0 更新說明Spring Boot
- Iceworks 2.7.0 釋出,海量圖表供你選擇
- Excelize 釋出 2.4.1 版本,新增併發安全支援Excelize
- Go 語言 Excel 類庫 Excelize 2.0.0 版本釋出GoExcelize
- Go 語言 Excel 文件類庫 excelize 釋出 1.4.1 版本GoExcelize
- Spring Boot 2.7.0釋出,2.5停止維護,節奏太快了吧Spring Boot
- ShowDoc v2.7.0 釋出, IT 團隊的線上 API 文件工具API
- Excelize 釋出 2.7.1 版本,Go 語言 Excel 文件基礎庫ExcelizeGo
- Excelize 釋出 2.5.0 版本,Go 語言 Excel 文件基礎庫ExcelizeGo
- Excelize 釋出 2.0.1 版本,Go 語言 Excel 文件基礎庫ExcelizeGo
- Spring Boot 2.1.0 已釋出,7 個重大更新!Spring Boot
- Excelize 釋出 2.6.0 版本,功能強大的 Excel 文件基礎庫Excelize
- Go 語言 Excel 文件類庫 excelize 釋出1.4.1版本GoExcelize
- Spring Boot 3.0.0 M3、2.7.0釋出,2.5.x將停止維護Spring Boot
- Excelize釋出2.0.1版本,Go語言Excel文件基礎庫ExcelizeGo
- NPM包(模組)釋出、更新、撤銷釋出NPM
- 福昕釋出安全更新,PDF軟體存在多個漏洞
- SpringBoot2.1.0已釋出,7個重大更新你需要了解Spring Boot
- Webpack 5.54.0 釋出,重要更新彙總Web
- 谷歌釋出安全更新,修復今年第十個0day漏洞谷歌
- Nacos 2.4.0 正式釋出,帶來重磅更新!
- OpenAI和谷歌分別釋出重大更新OpenAI谷歌
- Microsoft釋出2020年10月安全更新ROS
- npm製作外掛、釋出及更新NPM
- 袋鼠雲產品功能更新報告04期丨2023年首次,產品升級“狂飆”
- GeForce Experience曝出高危漏洞:NVIDIA緊急釋出更新
- 蘋果今年首款新iPhone最快2月底釋出:頂配售價12799元蘋果iPhone
- 修復3個9.8分漏洞,微軟釋出12月累積更新微軟
- Adobe釋出安全更新 修復Acrobat和Reader中39個關鍵漏洞BAT
- Informatica:2023年首席資料官報告ORM
- 微軟釋出五月累積更新,修復74個安全漏洞微軟
- VxWorks釋出安全更新修復多個高危遠端程式碼執行漏洞
- Log4Shell 更新:第二個 log4j 漏洞已釋出 - lunasec
- K8S 1.11 重磅釋出| 全面解讀 11 個重大功能更新K8S