Excelize is a library written in pure Go providing a set of functions that allow you to write to and read from XLSX / XLSM / XLTM files. Supports reading and writing spreadsheet documents generated by Microsoft Excel™ 2007 and later. Supports complex components by high compatibility, and provided streaming API for generating or reading data from a worksheet with huge amounts of data.

GitHub: github.com/xuri/excelize

We are pleased to announce the release of version 2.2.0. Featured are a handful of new areas of functionality and numerous bug fixes.

A summary of changes is available in the Release Notes. A full list of changes is available in the changelog.

Release Notes

Notable Features

  • New function GetSheetList to get the worksheet, chart sheet, and dialog sheet name list of the workbook
  • New function AddChartSheet support create chart sheet, related issue #451
  • New function UnsetConditionalFormat, support for remove conditional format, related issue #571
  • New function DeleteDataValidation, support delete data validation, related issue #348
  • New function SetCellRichText, support set rich text, related issue #172
  • New functions InsertPageBreak and RemovePageBreak, support for insert and remove page break, related issue #492
  • The AddPivotTable API changed, support for setting date field subtotal and names of the pivot table, related issue #582
  • The AddPivotTable support to set the filter for the pivot table, related issue #598
  • The AddPivotTable allow empty filter, data, and rows in the pivot table
  • Export ExcelDateToTime function to convert excel date to time
  • Export Style structs to allow create the style for cells by given JSON or structure pointer, related issue #470

Bug Fixes

  • Fix corrupt worksheet created by StreamWriter, resolve issue #576
  • Escape character in the formula, resolve issue #578
  • Fix the DuplicateRowTo function doesn't duplicate merged cells, resolve issue #586
  • Fix conditional formatting hides the adjacent borders by ignoring empty conditional format style, resolve issue #200
  • Fix missing comments by GetComments, resolve issue #345
  • Fix reading wrong string by GetCellValue in some case, resolve issue #602
  • Check and fill the cell without r attribute in a row element, fix returned empty value when GetCellValue in some case
  • Allow empty or default cell style formats, resolved issue #628



  • Add missing checking error in unit tests
  • Documentation website with multilingual: English, French, Russian, Chinese, Japanese, and Korean, which has been updated

Software developer and open source enthusiast. Focused on the program design, big data analytics and research.