ExcelJS

Read, manipulate, and write XLSX spreadsheet data, styles, and formulas in JavaScript

Library
npm
v4.4.0
15,486 stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum. How we score it →
51 /100 Fair
Development Activity 0
Maintenance 20
Community 84
Maturity 60
Momentum 40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation. How we score it →
67 /100 Good
Architecture 72
Code Quality 75
Innovation 60
Learning Curve 60

ExcelJS is a comprehensive Node.js and browser library for reading, writing, and manipulating Excel-format (XLSX) workbooks, reverse-engineered directly from the Excel file format. It covers far more than raw cell values: styles, fonts, borders, fills, number formats, merged cells, data validations, conditional formatting, defined names, images, cell comments, tables, and both workbook-level and worksheet-level protection.

Beyond in-memory workbook manipulation, ExcelJS supports streaming readers and writers for XLSX and CSV, which matters for generating or parsing very large spreadsheets without loading the entire file into memory. It’s one of the most widely adopted spreadsheet libraries in the npm ecosystem, with 226 contributors and broad real-world use in reporting, data-export, and ETL tooling.

What You Get

  • A Workbook/Worksheet/Row/Cell object model covering values, styles, formulas, merges, and comments
  • Full styling support: fonts, alignment, borders, fills, number formats, and rich text within cells
  • Data validations, conditional formatting, defined names, outline levels, and worksheet/workbook protection
  • Streaming XLSX and CSV readers/writers for handling very large spreadsheets without high memory overhead
  • Both Node.js and browser builds (exceljs.nodejs.js, exceljs.browser.js, exceljs.bare.js) plus TypeScript declarations

Common Use Cases

  • Generating downloadable Excel reports from application data (financial summaries, inventory exports, analytics dashboards)
  • Parsing user-uploaded XLSX files to import bulk data into a database or business system
  • Building ETL pipelines that read from or write to spreadsheet-based data exchange formats
  • Producing large, streamed spreadsheet exports (e.g. millions of rows) without exhausting server memory

Under The Hood

Architecture - The core object model lives under lib/doc/ (Workbook, Worksheet, Row, Cell classes and style/model definitions) while lib/xlsx/ handles the low-level XLSX zip/XML serialization and parsing (XLSX files are a zip of XML parts under the hood), and lib/csv/ provides parallel CSV read/write support. lib/stream/ implements the streaming reader/writer variants that process a workbook incrementally via Node streams rather than building the full in-memory model, which is essential for large-file scenarios.

Tech Stack - Nearly pure JavaScript (99.7%) with a thin TypeScript declaration layer (index.d.ts), built via a Gruntfile-based build pipeline into three distinct bundle targets (exceljs.nodejs.js, exceljs.browser.js, exceljs.bare.js) so consumers only pull in the environment-appropriate dependencies (Node-specific zip/file APIs are excluded from the browser build).

Code Quality - Testing is organized into spec/unit, spec/integration, spec/end-to-end, and spec/browser suites plus a dedicated spec/typescript directory validating the type declarations compile correctly — a notably thorough test taxonomy for a library this large. The README explicitly asks contributors to add a unit or integration test with every bug-fix PR, and CI runs across multiple Node versions, reflecting deliberate quality discipline despite the project’s currently low commit velocity.

API Design - The chainable, object-oriented API (workbook.addWorksheet(), worksheet.addRow(), cell.font = {...}) closely mirrors how a developer already thinks about spreadsheets, and the README’s extensive table of contents (covering everything from page setup to pivot tables) doubles as thorough reference documentation. The tradeoff is a large surface area — matching Excel’s own feature breadth means there’s a genuine learning curve to discover the right property or method for a specific styling need.

Used by 14 apps in this directory

TypeScript
72%
AGPL 3.0

APITable

Databases · Low Code Platforms

15,623

API-first collaborative spreadsheet-database platform that auto-generates REST APIs and lets teams build internal tools, CRMs, and dashboards without code.

View details
71
Repo Health
77
Technical
60
Dependency
Built with
TypeScript 72%
Java 22%
Updated 3 weeks ago
JavaScript
95%
MIT

AnythingLLM

AI Assistants · Automation · Developer Tools

66,533

The all-in-one AI platform for private document chat, no-code agents, and local LLMs with zero setup friction.

View details
90
Repo Health
78
Technical
64
Dependency
Built with
JavaScript 95%
Updated 6 days ago
TypeScript
98%
Apache 2.0

Cline

AI Code Assistants

69,455

An open-source AI coding agent that lives in your editor and terminal — reads and edits your codebase, runs commands, browses the web, and requires human approval for every action by default.

View details
90
Repo Health
74
Technical
65
Dependency
Built with
TypeScript 98%
Updated 4 days ago
Java
70%
GPL 3.0

DataEase

AI Assistants · Analytics · Data Engineering

24,558

Open-source BI tool with drag-and-drop dashboards, 20+ data source connectors, and AI-powered natural language queries — a self-hosted alternative to Tableau.

View details
94
Repo Health
71
Technical
65
Dependency
Built with
Java 70%
Vue 29%
Updated 4 days ago
TypeScript
83%
Apache 2.0

Grist

Databases · No Code Platforms

11,875

A modern relational spreadsheet that combines Python-powered formulas, drag-and-drop dashboards, and granular access controls in a self-hostable, SQLite-backed data platform.

View details
91
Repo Health
93
Technical
66
Dependency
Built with
TypeScript 83%
Python 11%
Updated 5 days ago
TypeScript
97%
Other

Lightdash

Analytics · Data Engineering

6,166

The open-source Looker alternative that turns your dbt project's metrics and dimensions into governed, self-serve charts and dashboards — no license key required.

View details
93
Repo Health
84
Technical
64
Dependency
Built with
TypeScript 97%
Updated 4 days ago
TypeScript
96%
Other

LLM Gateway

AI Development · Devops

1,663

One API endpoint for 25+ LLM providers — route, track costs, enforce compliance, and switch models without changing your code.

View details
86
Repo Health
80
Technical
68
Dependency
Built with
TypeScript 96%
Updated 5 days ago
TypeScript
44%
Other

Magic

AI Agents · Automation · Low Code Platforms

5,043

Magic is an enterprise-grade open-source AI agent platform combining a generalist AI agent, workflow engine, IM, and collaborative office system for running an AI-powered digital workforce.

View details
70
Repo Health
79
Technical
65
Dependency
Built with
TypeScript 44%
PHP 32%
Updated 1 months ago
TypeScript
99%
Other

NocoBase

Low Code Platforms · No Code Platforms

24,377

Open-source AI + no-code platform that lets coding agents and people collaborate to build business systems fast on proven infrastructure.

View details
94
Repo Health
81
Technical
63
Dependency
Built with
TypeScript 99%
Updated 5 days ago

Join founders buildingwith open source

Opinionated takes, migration guides, cost-saving tips, and insights from the open source ecosystem.

Subscribe on Substack
Join 750+ subscribers