Releases: mitresthen/excelents
Release list
v1.0.1
Patch release: three xlsx codec fixes. No API changes.
Fixed
- Merged ranges paint fully —
merge()now materializes every covered cell sharing the master's style object (ExcelJS semantics: style the master before or after merging), so fills no longer die after the last written column.addRowlands below merged blocks. The reader preserves covered cells' own parsed styles, so per-edge borders survive round-trips. (#2) - Styled blank cells are written — value-less cells that carry a style (spacer rows, fills across merges) serialize as
<c r=".." s="N"/>like ExcelJS instead of being dropped, and round-trip throughreadXlsx. (#2) - 1904 date system honored on read —
readXlsx/readXlsxRowsparse<workbookPr date1904="1"/>; dates in legacy Mac workbooks no longer read back ~4 years off. (#3)
Full changelog: v1.0.0...v1.0.1
v1.0.0 — first stable release
First stable release — the public API is now covered by semver: breaking changes only in major versions.
excelents is a universal, tree-shakeable, TypeScript-first spreadsheet (xlsx/csv) library with zero runtime dependencies — a ground-up rewrite of ExcelJS on web-standard APIs. It runs the same in Node ≥ 24, browsers, Deno, Bun, and edge runtimes.
Highlights (since 0.3.0)
- ExcelJS migration scanner —
npx @mitresthen/excelents [path] [--json]inventories a codebase's ExcelJS usage and buckets every call site into auto-mappable / needs-restructuring / no-equivalent, each pointing into the new migration guide. Also importable from@mitresthen/excelents/migrate. - Browser tests in CI — the public-API suite now runs in real Chromium (Vitest browser mode) on every commit.
- Benchmarks — reproducible excelents-vs-exceljs benchmark (
pnpm bench); honest results in the README: ~2× faster reads and lower memory everywhere, writes currently slower (on the roadmap). - Docs — rewritten README, CHANGELOG, migration guide.
Notes
- ESM-only, Node ≥ 24 (browsers/Deno/Bun/edge via web-standard APIs).
- Deliberately out of scope vs ExcelJS: cell comments, pivot tables, encryption, page setup/printing, protection — see the README for the full list and roadmap.
Full changelog: v0.3.0...v1.0.0
v0.3.0
Adds four xlsx write features (idiomatic API, write-only): embedded images (wb.addImage + ws.placeImage), sheet AutoFilter (ws.setAutoFilter), frozen panes (ws.freeze), and alignment indent. Output verified to round-trip through ExcelJS. Additive, non-breaking.
v0.2.0
ESM-only release. Drops the CommonJS build; the package now ships ESM only (import), with per-subpath types and npm provenance. First version published through the OIDC trusted-publishing pipeline.