Excelize 是 Go 語言編寫的用於操作 Office Excel 文檔基礎庫,基於 ECMA-376,ISO/IEC 29500 國際標準。可以使用它來讀取、寫入由 Microsoft Excel™ 2007 及以上版本創建的電子表格文檔。支持 XLSX / XLSM / XLTM 等多種文檔格式,高度兼容帶有樣式、圖片(表)、透視表、切片器等複雜組件的文檔,並提供流式讀寫 API,用於處理包含大規模數據的工作簿。可應用於各類報表平臺、雲計算、邊緣計算等系統。入選 2018 開源中國碼雲 Gitee 最有價值開源項目 GVP,目前已成爲 Go 語言最受歡迎的 Excel 文檔基礎庫。
開源代碼
GitHub: github.com/xuri/excelize
Gitee: gitee.com/xurime/excelize
中文文檔: xuri.me/excelize/zh-hans
Excelize 知名用戶
2020年5月11日,社區正式發佈了 2.2.0 版本,該版本包含了多項新增功能、錯誤修復和兼容性提升優化。下面是有關該版本更新內容的摘要,完整的更改列表可查看 changelog。
有關更改的摘要,請參閱 Release Notes。完整的更改列表可查看 change log。
Release Notes
此版本中最顯著的變化包括:
新增功能
- 下列 API 的參數將使用工作表索引代替工作表 ID:
GetSheetName
、GetSheetIndex
、GetActiveSheetIndex
和SetActiveSheet
, 相關 #485 - 新增
GetSheetList
API,獲取與工作簿內順序保持一致的工作表列表 - 新增
AddChartSheet
API,支持創建圖表工作表,相關 issue #451 - 新增
UnsetConditionalFormat
API,支持從工作表中刪除條件格式,相關 issue #571 - 新增
DeleteDataValidation
API,支持從工作表中刪數據驗證設置,相關 issue #348 - 新增
SetCellRichText
API,支持設置單元格換行與富文本樣式,相關 issue #172 - 新增函數
InsertPageBreak
和RemovePageBreak
,支持從工作表中插入或刪除換頁符,相關 issue #492 - 函數
AddPivotTable
API 更改,支持設置數據透視表的數據標籤與彙總函數,相關 issue #582 - 函數
AddPivotTable
支持設置數據透視表的篩選項,相關 issue #598 - 函數
AddPivotTable
支持數據透視表中的值、行或篩選項爲空 - 導出函數
ExcelDateToTime
,提供將 Excel 時間格式轉換爲time.Time
數據類型 - 導出
Style
結構體,允許通過結構體指針或 JSON 字符創建樣式,相關 issue #470
問題修復
- 修復當使用
SetConditionalFormat
爲單元格設置條件格式時,>=
和<=
運算符不生效的問題, 解決 issue #608 - 修復特定情況下通過
StreamWriter
進行流式寫入導致工作表損壞的問題,解決 issue #576 - 提高公式中的特殊字符兼容性,解決 issue #578
- 修復通過
DuplicateRowTo
進行復制行時,合併單元格未被複制的問題,解決 issue #586 - 修復特定情況下創建條件格式後,相鄰單元格邊框樣式丟失問題,解決 issue #200
- 修復通過
GetComments
獲取批註式部分批註數據無法獲取問題,解決 issue #345 - 修復特定情況下通過
GetCellValue
獲取單元格值錯誤問題,解決 issue #602 - 修復因某些情況下文檔內部行內單元格缺少
r
屬性而導致的GetCellValue
錯誤地返回空值問題 - 兼容單元格樣式中的空值與默認值,修復部分情況下通過電子表格軟件打開生成文檔修改樣式失效的問題,解決 issue #628
性能提升
- 優化內部函數
getRowHeight
,降低內存佔用
其他
- 移除工作表計算屬性使部分電子表格應用程序(如:金山 WPS™ Office)打開生成的文檔進行重新計算公式
- 完善單元測試中的錯誤處理
- 包含簡體中文、英語、法語、俄語、日語和韓語的多國語言文檔網站更新
- 技術交流羣