Repolode
qax-os

qax-os/excelize

Pure Go library for reading and writing Excel XLSX, XLSM, XLTX, XLTM and XLAM spreadsheet files without Microsoft Office.

Open-source alternative to:Microsoft Excel

Stars
21,015
Forks
1,971
Open issues
144
Last commit
3 days ago

What is it?

Excelize is a Go library for reading and writing spreadsheet files in the Office Open XML family, including XLSX, XLSM, XLSB-free macro-enabled and template variants such as XLTM, XLTX and XLAM. It targets files produced by Microsoft Excel 2007 and later, and it is written in pure Go, so it runs without Office or any external runtime.

The API covers creating workbooks, setting and reading cell values, managing sheets, and inserting charts and pictures. A streaming API is available for writing or reading worksheets with very large amounts of data. XML handling follows part 1 of the 5th edition of the ECMA-376 standard.

The package is imported as github.com/xuri/excelize/v2 and documented on pkg.go.dev and on the project's docs site.

Key features

  • 01Reads and writes XLSX, XLSM, XLTM, XLTX and XLAM files without Microsoft Office.
  • 02Sets and gets cell values, rows and sheets by name or coordinates.
  • 03Adds charts built from worksheet data and inserts pictures with scaling and offsets.
  • 04Provides a streaming API for large worksheets.
  • 05Follows part 1 of the ECMA-376 5th edition standard for XML.

Use cases

  • Generating Excel reports from a Go backend service.
  • Reading uploaded spreadsheets to import data into a database.
  • Producing charts and formatted workbooks in batch jobs.
  • Processing very large spreadsheets with the streaming API.

Quick start

  1. 1

    Install the library with Go modules

    go get github.com/xuri/excelize/v2
  2. 2

    Create a new spreadsheet file with the minimal example in the README and save it

Things to know

  • Requires Go 1.26.0 or later.

Topics

FAQ

What is excelize?
Pure Go library for reading and writing Excel XLSX, XLSM, XLTX, XLTM and XLAM spreadsheet files without Microsoft Office. Excelize is a Go library for reading and writing spreadsheet files in the Office Open XML family, including XLSX, XLSM, XLSB-free macro-enabled and template variants such as XLTM, XLTX and XLAM. It targets files produced by Microsoft Excel 2007 and later, and it is written in pure Go, so it runs without Office or any external runtime.
Is excelize free to use? What license does it have?
excelize is open source under the BSD-3-Clause license. Check the license terms before using it in commercial products.
Is excelize still maintained?
Actively maintained. The last commit to excelize was on Oct 20, 2026.
What can I use excelize for?
Generating Excel reports from a Go backend service. Reading uploaded spreadsheets to import data into a database. Producing charts and formatted workbooks in batch jobs. Processing very large spreadsheets with the streaming API.
How do I install excelize?
Install the library with Go modules: go get github.com/xuri/excelize/v2 Create a new spreadsheet file with the minimal example in the README and save it
Where can I get excelize?
The source code and installation instructions are on GitHub: https://github.com/qax-os/excelize

Summary generated by AI from the project's README. GitHub stats refresh daily.

Related projects