Excelize reads and writes modern Excel workbooks from Go. It suits backend services that accept customer spreadsheets or generate formatted reports, with charts and clickable links alongside the data.
- Read existing workbooks. Open a file, inspect individual cells, or iterate worksheet data. Supported formats include XLSX, XLSM, XLAM, XLTM, and XLTX.
- Build useful exports. Create sheets, populate cells, add images and charts, and apply formatting. The cell documentation covers real external hyperlinks separately from displayed text.
- Write large sheets incrementally. The streaming writer can spill buffered data to temporary disk files once chunks exceed 16 MB.
- Use the documented module path. Install with
go get github.com/xuri/excelize/v2, despite the repository living underqax-os. The current README andgo.modrequire Go 1.26.0 or later.
The library is pure Go, so spreadsheet generation can live inside the application without driving a desktop Excel session. Its BSD-3-Clause licence allows redistribution and modification with the required notices.
Caveat: streaming writes require ascending row numbers and a final Flush(). You cannot mix normal and streaming writes on the same worksheet, so choose the write strategy before building the export.
Discovered through this r/BestGitHubRepos thread. Capabilities and requirements come from the project’s README and first-party documentation.