Skip to content

Releases: mitresthen/excelents

v1.0.1

Choose a tag to compare

@mitresthen mitresthen released this 02 Jul 12:47

Patch release: three xlsx codec fixes. No API changes.

Fixed

  • Merged ranges paint fullymerge() 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. addRow lands 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 through readXlsx. (#2)
  • 1904 date system honored on readreadXlsx/readXlsxRows parse <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

Choose a tag to compare

@mitresthen mitresthen released this 02 Jul 11:19

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 scannernpx @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

Choose a tag to compare

@mitresthen mitresthen released this 02 Jul 09:08

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

Choose a tag to compare

@mitresthen mitresthen released this 01 Jul 15:13

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.