A WebAssembly and JavaScript port of the Go Excelize library for reading and writing Excel XLSX, XLSM, XLTX and related spreadsheet files in Node.js and browsers.
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
Install the library with Go modules
go get github.com/xuri/excelize/v2 - 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
Python library for reading and writing Excel spreadsheet files (XLSX, XLSM, XLTX, XLTM, XLAM), ported from the Go Excelize library.
A work-in-progress spreadsheet engine written in Rust, with xlsx read/write and bindings for Python and JavaScript (wasm).
A Java library for reading and writing Excel and CSV spreadsheets with low memory use, suited to large files.
A free, open-source AI Office suite for macOS, Windows and Linux that edits real .docx, .xlsx, .pptx and PDF files with a built-in AI agent.
Browser-based editor for Word, Excel, PowerPoint and PDF files that runs locally, with no Office install or account needed.