Pure Go library for reading and writing Excel XLSX, XLSM, XLTX, XLTM and XLAM spreadsheet files without Microsoft Office.
xuri/excelize-wasm
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.
Open-source alternative to:Microsoft Excel
- Stars
- 365
- Forks
- 45
- Open issues
- 7
- Last commit
- 2 months ago
What is it?
excelize-wasm brings the Go Excelize spreadsheet library to JavaScript by compiling it to WebAssembly. It lets you create, open, modify and save Excel workbooks in the XLAM, XLSM, XLSX, XLTM and XLTX formats, covering files produced by Microsoft Excel 2007 and later.
The package runs in Node.js (12.0.0 and up), Deno, and modern browsers, so spreadsheet generation can happen entirely on the client without a server-side Excel dependency. Typical operations include setting cell values, creating sheets, reading rows, inserting pictures and building charts such as 3D clustered column charts.
The API mirrors the Go library's method names, such as NewFile, SetCellValue, GetRows and AddChart, and it is distributed as an npm package with TypeScript typings.
Key features
- 01Reads and writes XLSX, XLSM, XLTX, XLTM and XLAM workbooks.
- 02Runs in Node.js, Deno and modern browsers via WebAssembly.
- 03Sets and reads cell values and rows across sheets.
- 04Creates charts and inserts pictures with offset and scaling options.
- 05Exports workbooks to a buffer for download or saving to disk.
- 06Ships as an npm package with TypeScript typings.
Use cases
- Generating Excel reports directly in a browser without a server round trip.
- Adding spreadsheet export to a Node.js backend or CLI script.
- Reading uploaded XLSX files in a JavaScript web application.
- Producing workbooks with charts and images from application data.
Quick start
- 1
Install the package from npm
npm install --save excelize-wasm - 2
Initialize the module from node_modules and create a new spreadsheet in Node.js
Topics
FAQ
- What is excelize-wasm?
- 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. excelize-wasm brings the Go Excelize spreadsheet library to JavaScript by compiling it to WebAssembly. It lets you create, open, modify and save Excel workbooks in the XLAM, XLSM, XLSX, XLTM and XLTX formats, covering files produced by Microsoft Excel 2007 and later.
- Is excelize-wasm free to use? What license does it have?
- excelize-wasm is open source under the BSD-3-Clause license. Check the license terms before using it in commercial products.
- Is excelize-wasm still maintained?
- Updated within 6 months. The last commit to excelize-wasm was on Aug 27, 2026.
- What can I use excelize-wasm for?
- Generating Excel reports directly in a browser without a server round trip. Adding spreadsheet export to a Node.js backend or CLI script. Reading uploaded XLSX files in a JavaScript web application. Producing workbooks with charts and images from application data.
- How do I install excelize-wasm?
- Install the package from npm: npm install --save excelize-wasm Initialize the module from node_modules and create a new spreadsheet in Node.js
- Where can I get excelize-wasm?
- The source code and installation instructions are on GitHub: https://github.com/xuri/excelize-wasm
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.
Browser-based viewer and editor for Word, Excel and PowerPoint files that processes documents locally using WebAssembly.
A Rust library and CLI that converts Word, PowerPoint, Excel, OpenDocument, RTF, EPUB, CSV and PDF files into clean GitHub-Flavored Markdown.