ExcelJS
Read, manipulate, and write XLSX spreadsheet data, styles, and formulas in JavaScript
Repository Health
Technical Analysis
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/Cellobject 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
NocoDB
Databases · Low Code Platforms · No Code Platforms
Turn any SQL database into a collaborative no-code spreadsheet with automatic REST APIs and real-time views.
Papermark
Digital Signiture · File Storage
Open-source DocSend alternative with page-by-page analytics, secure data rooms, and custom domains for document sharing.
Valmis
AI Agents
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.
Worklenz
Collaboration · Product Management · Project Management
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.
World Monitor
Analytics · Monitoring
Real-time global intelligence dashboard that fuses AI-synthesized news, geopolitical risk scoring, and infrastructure tracking into one open-source situational awareness platform.