ExcelJS

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

Library
npm
v4.4.0
15,498 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
65%
Other

NocoDB

Databases · Low Code Platforms · No Code Platforms

65,340

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
63
Dependency
Built with
TypeScript 65%
Vue 30%
Updated 5 days ago
TypeScript
99%
Other

Papermark

Digital Signiture · File Storage

9,263

Open-source DocSend alternative with page-by-page analytics, secure data rooms, and custom domains for document sharing.

View details
78
Repo Health
63
Technical
66
Dependency
Built with
TypeScript 99%
Updated 2 months ago
TypeScript
72%
Apache 2.0

Valmis

AI Agents

108

A security-focused, self-hostable AI agent platform for production work — agents run in isolated containers that access credentials only through a host-side proxy, so the AI itself never sees API keys or plaintext credentials.

View details
51
Repo Health
69
Technical
70
Dependency
Built with
TypeScript 72%
Svelte 27%
Updated 1 months ago
TypeScript
72%
AGPL 3.0

Worklenz

Collaboration · Product Management · Project Management

3,259

All-in-one open source project management for teams who want full control — plan projects, track tasks, manage resources, and monitor finances without the SaaS lock-in.

View details
87
Repo Health
7
Technical
64
Dependency
Built with
TypeScript 72%
JavaScript 21%
Updated 6 days ago
TypeScript
50%
Other

World Monitor

Analytics · Monitoring

89,376

Real-time global intelligence dashboard that fuses AI-synthesized news, geopolitical risk scoring, and infrastructure tracking into one open-source situational awareness platform.

View details
87
Repo Health
89
Technical
68
Dependency
Built with
TypeScript 50%
JavaScript 48%
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