Excelize is a library written in pure Go and providing a set of functions that allow you to write to and read from XLSX files. Support reads and writes XLSX file generated by Microsoft Excel™ 2007 and later. Support save file without losing original charts of XLSX. This library needs Go version 1.8 or later. The full API docs can be seen using go's built-in documentation tool, or online at go.dev and docs reference.
We are pleased to announce the release of version 2.0.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 change log.
Release Notes
The most notable changes in this release are:
API Changed
The following table lists the changes to the API for v2.0.0 compared to the v1.4.1:
| Function | Add error return |
Row Number Change* | Delete | New Addition |
|---|---|---|---|---|
| ToALphaString | × | × | √ | × |
| TitleToNumber | × | × | √ | × |
| SplitCellName | × | × | × | √ |
| JoinCellName | × | × | × | √ |
| ColumnNameToNumber | × | × | × | √ |
| ColumnNumberToName | × | × | × | √ |
| CellNameToCoordinates | × | × | × | √ |
| CoordinatesToCellName | × | × | × | √ |
| SetCellFloat | × | × | × | √ |
| SetCellStyle | √ | × | × | × |
| InsertCol | √ | × | × | × |
| RemoveCol | √ | × | × | × |
| RemoveRow | √ | √ | × | × |
| InsertRow | √ | √ | × | × |
| DuplicateRow | √ | × | × | × |
| DuplicateRowTo | √ | × | × | × |
| SetRowHeight | √ | × | × | × |
| GetRowHeight | √ | × | × | × |
| GetCellValue | √ | × | × | × |
| GetCellFormula | √ | × | × | × |
| GetCellHyperLink | √ | × | × | × |
| SetCellHyperLink | √ | × | × | × |
| SetCellInt | √ | × | × | × |
| SetCellBool | √ | × | × | × |
| SetCellStr | √ | × | × | × |
| SetCellDefault | √ | × | × | × |
| GetCellStyle | √ | × | × | × |
| SetCellValue | √ | × | × | × |
| MergeCell | √ | × | × | × |
| SetSheetRow | √ | × | × | × |
| SetRowVisible | √ | √ | × | × |
| GetRowVisible | √ | √ | × | × |
| SetRowOutlineLevel | √ | √ | × | × |
| GetRowOutlineLevel | √ | √ | × | × |
| GetRows | √ | × | × | × |
| Columns | √ | × | × | × |
| SearchSheet | √ | × | × | × |
| GetPicture | √ | × | × | × |
| GetColVisible | √ | × | × | × |
| SetColVisible | √ | × | × | × |
| GetColOutlineLevel | √ | × | × | × |
| SetColOutlineLevel | √ | × | × | × |
| SetColWidth | √ | × | × | × |
| GetColWidth | √ | × | × | × |
| GetMergeCells | √ | × | × | × |
| ProtectSheet | √ | × | × | × |
| UnprotectSheet | √ | × | × | × |
| UpdateLinkedValue | √ | × | × | × |
| SetSheetVisible | √ | × | × | × |
| adjustHelper | √ | × | × | × |
| adjustMergeCells | √ | × | × | × |
| adjustAutoFilter | √ | × | × | × |
| prepareCell | √ | × | × | × |
| setDefaultTimeStyle | √ | × | × | × |
| timeToExcelTime | √ | × | × | × |
| addDrawingChart | √ | × | × | × |
| addDrawingVML | √ | × | × | × |
| addDrawingPicture | √ | × | × | × |
| getTotalRowsCols | √ | × | × | × |
| checkRow | √ | × | × | × |
| addDrawingShape | √ | × | × | × |
| addTable | √ | × | × | × |
| workSheetReader | √ | × | × | × |
| copySheet | √ | × | × | × |
* From version 2.0.0 all row manipulation methods uses Excel row numbering starting with 1 instead of zero-based numbering which take place in some methods in earlier versions, related issue #349.
Feature
- New function
DuplicateRowTo()has been added for duplicate row to specified row position - The function
SetPageLayout()now support to set page orientation, related issue #318 - The function
SetPageLayout()now support to set page size
Bug Fixes
- Fix the issue that create a blank fill if no fill is specified in the style format
- Fix the issue that data validation list in the excel sheet disappears formula characters greater than
255, related issue #339 - Fix the issue corrupted xlsx after deleting formula of cell, related issue #346
- Fix the issue that
GetComment()returns incorrect mapping between worksheets and comments in some case, related issue #345 - Fix the issue #346, resolve the issue corrupted xlsx after deleting formula of cell
- Fix the issue #377, avoid empty column in GetRows result
Performance
- Performance optimization, faster for add comments, related issue #347, faster add images, charts and shapes, related issue #274
- Adding the same image should create a drawing referencing the already stored copy of the image, related issue #359
Miscellaneous
- Typo fixed and godoc updated
- Tests made stronger again, go1.12 added to tests matrix

Top comments (0)