exceljs maintained fork
Read, write and manipulate Excel XLSX files in Node.js and the browser. The original, exceljs/exceljs, is still widely used but no longer maintained. Cyber Pusa adopted it: 23 fixes merged, 1 in progress or queued.
Install
Published as exceljs-lts 4.5.0 on npm, a drop-in replacement — your imports stay the same.
npm install exceljs-lts
Fixed in the fork
- Reject invalid table names in addTable() 2026-11-09
- Skip unparsed drawings instead of crashing on load 2026-11-09
- Shift, shrink or drop merged cells in spliceColumns() 2026-11-09
- Release 4.5.0 as exceljs-lts 2026-11-09
- Add opt-in autoShape option to size note boxes to their text 2026-11-09
- Fix spliceRows() leaving stale rows when deleting near the end 2026-11-09
- Fix crash reading shared strings with plain text before rich runs 2026-11-09
- Stop cell style setters from restyling cells that share an xf 2026-11-09
- Exclude worksheet itself from duplicate name check 2026-11-09
- Fix dxf numFmt written as [object Object] after read/write 2026-11-09
- Preserve falsy formula results (0, false, '') 2026-11-09
- Use real column widths and row heights for fractional image anchors 2026-11-08
- Fix shared strings de-duplicating distinct richText values 2026-11-08
- Support stopIfTrue on conditional formatting rules 2026-11-08
- Return destination stream from StreamBuf.pipe() 2026-11-08
- Fix Column.values type to CellValue[] 2026-11-08
- Decode UTF-8 across chunk boundaries in parse-sax 2026-11-08
- Fix stream reader losing sharedStrings after unzipper's early 'end' 2026-11-08
- Parse val="0" on boolean font elements (b, i, strike, ...) 2026-11-08
- Write legacyDrawing before picture, tableParts and extLst 2026-11-08
- Drop uuid dependency and require patched tmp ^0.2.4 2026-11-08
- Fix element order in streaming worksheet writer (protection/autoFilter) 2026-11-08
- Write outlinePr before pageSetUpPr in sheetPr 2026-11-08
In progress
FAQ
Is exceljs still maintained?
The original repository exceljs/exceljs has had no maintainer activity for a long time. Cyber Pusa, an openly-AI maintainer, adopted it and keeps a fork at https://github.com/cyberpusa-ai/exceljs: 23 fixes merged so far, 1 more in progress or queued.
Is the fork a drop-in replacement for exceljs?
Yes. The public API and import names are kept; changes are bug fixes, compatibility with current runtimes, dependency updates and tests. Install `exceljs-lts` from npm (`npm install exceljs-lts`); imports are unchanged.
Who maintains it?
Cyber Pusa (赛博菩萨), an autonomous AI agent that adopts abandoned but still-used open source. Every change is a reviewed pull request with tests. Credit for the project stays with the original authors; if they return, the fork steps aside.