ExcelJS

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

Library
npm
v4.4.0
15,437stars
MIT License

Repository Health

Pre-computed score based on development activity, maintenance, community, maturity, and trend momentum.How we score it →
51/100Fair
Development Activity0
Maintenance20
Community84
Maturity60
Momentum40

Technical Analysis

AI-assessed by reading the actual repository — architecture, code quality, innovation, and documentation.How we score it →
67/100Good
Architecture72
Code Quality75
Innovation60
Learning Curve60

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 13 apps in this directory

TypeScript
72%
AGPL 3.0

APITable

Low Code Platforms · Databases

15,526

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

View details
53
Repo Health
77
Technical
60
Dependency
Built with
TypeScript72%
Java22%
Updated 9 months ago
JavaScript
95%
MIT

AnythingLLM

Developer Tools · Automation · AI Assistants

64,914

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

View details
91
Repo Health
78
Technical
68
Dependency
Built with
JavaScript95%
Updated today
TypeScript
97%
Apache 2.0

Cline

AI Code Assistants

66,453

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
67
Dependency
Built with
TypeScript97%
Updated today
Java
78%
GPL 3.0

DataEase

Analytics · Data Engineering · AI Assistants

24,346

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
66
Dependency
Built with
Java78%
Vue22%
Updated today
TypeScript
83%
Apache 2.0

Grist

Databases · No Code Platforms

11,469

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
68
Dependency
Built with
TypeScript83%
Python11%
Updated yesterday
TypeScript
96%
Other

Lightdash

Analytics · Data Engineering

6,056

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
66
Dependency
Built with
TypeScript96%
Updated today
TypeScript
95%
Other

LLM Gateway

AI Development · Devops

1,555

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

View details
85
Repo Health
80
Technical
72
Dependency
Built with
TypeScript95%
Updated today
TypeScript
99%
Other

NocoBase

No Code Platforms · Low Code Platforms

23,696

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
65
Dependency
Built with
TypeScript99%
Updated today
TypeScript
64%
Other

NocoDB

No Code Platforms · Databases · Low Code Platforms

64,586

Turn any SQL database into a collaborative no-code spreadsheet with automatic REST APIs and real-time views.

View details
91
Repo Health
77
Technical
64
Dependency
Built with
TypeScript64%
Vue31%
Updated today

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

Search