# exceljs/exceljs

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/exceljs-exceljs).**

15,370 stars · 1,996 forks · JavaScript · MIT

## Links

- GitHub: https://github.com/exceljs/exceljs
- awesome-repositories: https://awesome-repositories.com/repository/exceljs-exceljs.md

## Description

ExcelJS is a Node.js spreadsheet engine and manipulation library used for reading, writing, and modifying XLSX and CSV files. It functions as a formatting tool and asynchronous streaming parser for generating complex workbooks containing formulas, rich text, and custom styles.

The library is distinguished by its ability to process large datasets using asynchronous data streaming and incremental processing, which minimizes memory usage during data extraction and file generation.

Its capability surface covers comprehensive data management, including structured tables, named ranges, and cell data manipulation. It provides extensive visual formatting options such as conditional formatting, image embedding, page setup configuration, and worksheet view controls. Additionally, the project includes security and integrity features like data validation constraints and password-protected worksheet modifications.

## Tags

### Business & Productivity Software

- [Spreadsheet Engines](https://awesome-repositories.com/f/business-productivity-software/spreadsheet-engines.md) — Functions as a backend engine for generating professional workbooks with formulas and rich text in Node.js.
- [Spreadsheet Cell Manipulators](https://awesome-repositories.com/f/business-productivity-software/spreadsheet-cell-manipulators.md) — Provides programmatic methods to set, get, and manipulate values within individual cells and merged ranges. ([source](https://cdn.jsdelivr.net/gh/exceljs/exceljs@main/README.md))
- [Spreadsheet File I/O](https://awesome-repositories.com/f/business-productivity-software/spreadsheet-file-i-o.md) — Enables reading, manipulating, and writing spreadsheet data and styles to XLSX and CSV files. ([source](https://cdn.jsdelivr.net/gh/exceljs/exceljs@main/README.md))
- [Spreadsheet Manipulation Libraries](https://awesome-repositories.com/f/business-productivity-software/spreadsheet-manipulation-libraries.md) — Provides a programmatic library for reading, updating, and saving modifications to existing spreadsheet files.
- [In-Memory Object Models](https://awesome-repositories.com/f/business-productivity-software/workbook-management/in-memory-object-models.md) — Maintains an in-memory hierarchy of workbooks and cells to enable precise random access manipulation of data.
- [Worksheet Organization](https://awesome-repositories.com/f/business-productivity-software/worksheet-organization.md) — Provides management of individual worksheets including their creation, removal, and access by name or ID. ([source](https://cdn.jsdelivr.net/gh/exceljs/exceljs@main/README.md))

### Data & Databases

- [Row and Column Manipulations](https://awesome-repositories.com/f/data-databases/column-manipulations/header-grouping/hierarchical-row-grouping/row-and-column-grouping/row-and-column-manipulations.md) — Enables structural layout operations including defining widths, heights, and visibility for rows and columns. ([source](https://cdn.jsdelivr.net/gh/exceljs/exceljs@main/README.md))
- [Zip-Compressed Serialization](https://awesome-repositories.com/f/data-databases/data-serialization-formats/xml-serialization-formats/xml-serialization/zip-compressed-serialization.md) — Serializes internal data structures into Open XML format and packages them into compressed zip archives.
- [Incremental Data Streaming](https://awesome-repositories.com/f/data-databases/incremental-data-streaming.md) — Implements memory-efficient streaming by writing data in chunks to avoid memory overflow when generating large files.
- [Spreadsheet Generators](https://awesome-repositories.com/f/data-databases/spreadsheet-generators.md) — Enables programmatic generation of complex Excel files with custom styles, formulas, and layouts.
- [Spreadsheet Styling](https://awesome-repositories.com/f/data-databases/spreadsheet-generators/spreadsheet-styling.md) — Provides extensive visual formatting including cell styles, conditional formatting, and page setups.
- [I/O Stream Managers](https://awesome-repositories.com/f/data-databases/data-buffering/buffered-input-output-managers/i-o-stream-managers.md) — Provides utilities for efficiently reading and writing binary XLSX components between memory buffers and files.
- [Structured Spreadsheet Tables](https://awesome-repositories.com/f/data-databases/database-management-systems/database-systems-management/database-management/schema-designers/table-schemas/table-creation/structured-spreadsheet-tables.md) — Supports the definition of structured tables with headers and totals rows within a spreadsheet. ([source](https://cdn.jsdelivr.net/gh/exceljs/exceljs@main/README.md))
- [Row Manipulations](https://awesome-repositories.com/f/data-databases/row-manipulations.md) — Implements operations for adding and duplicating rows with inherited styles within a spreadsheet. ([source](https://cdn.jsdelivr.net/gh/exceljs/exceljs@main/README.md))
- [Spreadsheet Data Validation](https://awesome-repositories.com/f/data-databases/spreadsheet-data-validation.md) — Implements input constraints such as dropdown lists and numeric ranges for spreadsheet cells.

### Programming Languages & Runtimes

- [Spreadsheet Data Flushing](https://awesome-repositories.com/f/programming-languages-runtimes/data-compression-and-decompression/incremental-stream-processing/spreadsheet-data-flushing.md) — Provides incremental processing of workbook data to minimize memory usage while reading or writing files. ([source](https://cdn.jsdelivr.net/gh/exceljs/exceljs@main/README.md))

### Scientific & Mathematical Computing

- [Formula Insertion](https://awesome-repositories.com/f/scientific-mathematical-computing/formula-evaluators/formula-insertion.md) — Implements mechanisms for placing mathematical or logical expressions and expected results into cells. ([source](https://cdn.jsdelivr.net/gh/exceljs/exceljs@main/README.md))

### User Interface & Experience

- [Cell Styling Systems](https://awesome-repositories.com/f/user-interface-experience/cell-styling-systems.md) — Provides comprehensive controls over cell appearance including fonts, colors, borders, and alignment. ([source](https://cdn.jsdelivr.net/gh/exceljs/exceljs@main/README.md))
- [Named Range Creation](https://awesome-repositories.com/f/user-interface-experience/cell-data-manipulation/cell-range-definitions/named-range-creation.md) — Assigns custom alphanumeric names to specific cell ranges for use in formulas and data validation. ([source](https://cdn.jsdelivr.net/gh/exceljs/exceljs@main/README.md))
- [Data Filters](https://awesome-repositories.com/f/user-interface-experience/data-tables/data-filters.md) — Defines cell ranges to act as filters for organizing and manipulating tabular data. ([source](https://cdn.jsdelivr.net/gh/exceljs/exceljs@main/README.md))
- [Conditional Formatting](https://awesome-repositories.com/f/user-interface-experience/grid-cell-configurations/conditional-formatting.md) — Applies visual styles to cell ranges based on expressions, value comparisons, or color scales. ([source](https://cdn.jsdelivr.net/gh/exceljs/exceljs@main/README.md))
- [Rich Text Styling](https://awesome-repositories.com/f/user-interface-experience/rich-text-styling.md) — Supports applying different font properties to individual sub-strings within a single cell. ([source](https://cdn.jsdelivr.net/gh/exceljs/exceljs@main/README.md))

### Web Development

- [Spreadsheet Row Streaming](https://awesome-repositories.com/f/web-development/asynchronous-stream-processors/spreadsheet-row-streaming.md) — Allows reading large workbooks using asynchronous iteration to process rows without loading the entire file into memory. ([source](https://github.com/exceljs/exceljs/blob/master/UPGRADE-4.0.md))
- [Spreadsheet Stream Processing](https://awesome-repositories.com/f/web-development/client-side-data-ingestion/large-file-processing/spreadsheet-stream-processing.md) — Processes large XLSX and CSV files using asynchronous streaming to maintain a low memory footprint.
- [XML Style Mappings](https://awesome-repositories.com/f/web-development/rendering-templating/server-side-rendering-utilities/style-extraction-utilities/dom-based-style-mapping/document-style-mappings/xml-style-mappings.md) — Maps high-level styling objects to a shared styles table to minimize redundancy in the generated XML structure.

### Content Management & Publishing

- [Spreadsheet Report Exports](https://awesome-repositories.com/f/content-management-publishing/data-report-exporting/spreadsheet-report-exports.md) — Allows exporting application data into formatted spreadsheets for users to download and analyze offline.
- [Header and Footer Management](https://awesome-repositories.com/f/content-management-publishing/header-and-footer-management.md) — Enables the addition of formatted text, page numbers, and dates to the top and bottom margins of printed pages. ([source](https://cdn.jsdelivr.net/gh/exceljs/exceljs@main/README.md))
- [Page Setup Configurations](https://awesome-repositories.com/f/content-management-publishing/page-setup-configurations.md) — Configures printing properties including paper size, orientation, margins, and designated print areas. ([source](https://cdn.jsdelivr.net/gh/exceljs/exceljs@main/README.md))

### Part of an Awesome List

- [Document Processing](https://awesome-repositories.com/f/awesome-lists/devtools/document-processing.md) — Comprehensive management and manipulation of Excel worksheets.
