Skip to content

xls-codec@2.0.0

Choose a tag to compare

@github-actions github-actions released this 04 Sep 14:21
· 77 commits to main since this release

2.0.0 (2026-09-04)

⚠ BREAKING CHANGES

  • xls-codec: readWorkbookStream is renamed to readWorkbookStreams
    and now returns { workbook, metadata } instead of a bare workbook byte
    array. A caller importing readWorkbookStream must switch to
    readWorkbookStreams and destructure the workbook field.

Features

  • xls-codec: add date-serial and column-width write conversions (f8acb64)
  • xls-codec: add low-level BIFF8 record-writing primitives (28201fc)
  • xls-codec: add writeXlsContent/writeXls, real .xls output (53c0aa2)
  • xls-codec: parse BIFF8 Ptg token streams into formula text (964fb72)
  • xls-codec: populate ContentSheetCell.formula from recovered Ptg expressions (792f3e6)
  • xls-codec: read a cell's fill colour and per-side borders from its CellXF payload (e2924b4)
  • xls-codec: read and write a cell's own horizontal/vertical alignment (f9662ba)
  • xls-codec: read and write a sheet's real print settings (66a89d9)
  • xls-codec: read and write document metadata via SummaryInformation (ab8b849)
  • xls-codec: recover a Formula record's own expression text (b545ebe)
  • xls-codec: resolve a 3D reference's ixti to a sheet range (8cae48d)
  • xls-codec: write a cell's fill colour and per-side borders into its CellXF payload (4187b1d)

Bug Fixes

  • xls-codec: budget palette slots against the cells the writer actually emits (a27a1c3)
  • xls-codec: carry a blank cell's own fill and borders in both directions (1dd9688)
  • xls-codec: clamp a print scale and fit-to-page count to their Setup fields (6cbb947)
  • xls-codec: mask PrintGrid's own single defined bit before testing it (66c5776)
  • xls-codec: refuse a Palette record whose ccv is not the 56 [MS-XLS] requires (85f8dbe)
  • xls-codec: refuse an XF-index lookup for a cell the interning pass never saw (87faebd)
  • xls-codec: reject a malformed createdIso/modifiedIso before the FILETIME conversion (42fb3e4)
  • xls-codec: stop silently wrapping an out-of-grid print range, repeat band, or page break (252e9cd)
  • xls-codec: write an unnamed page size as custom paper, not as a failure (11f7b27)

Code Refactoring

  • ooxml.js,xls-codec: consume the shared excel-number-format classifier (8b6cab4)
  • ppt-codec: consume archive-codec's shared LayoutMetadata mapping (7d0c81d)
  • xls-codec: consume archive-codec's shared LayoutMetadata mapping (cdd11b0)
  • xls-codec: resolve a cell's decoration once per cell, not twice (da81182)
  • xls-codec: resolve BIFF8 border weights through the shared quantisation (d267f5a)
  • xls-codec: resolve BUILTIN_NUMBER_FORMATS from excel-number-format (b151b0b)

Documentation

  • xls-codec: cite the Palette record as [MS-XLS] 2.4.188, not 2.4.204 (456291e)
  • xls-codec: document cell alignment as built and shipped (55493cb)
  • xls-codec: document cell decoration as read and write support, not a gap (d451669)
  • xls-codec: document formula-text recovery and its remaining boundary (2ede1ca)
  • xls-codec: document print settings as built and shipped (81b6264)
  • xls-codec: document the new write support and its scope (4192fe6)
  • xls-codec: fix stale claim that this package stands alone outside the conversion registry (14a8cb6), references #881
  • xls-codec: record the LibreOffice check of a decorated blank cell (26f60b5)
  • xls-codec: state what the LibreOffice check actually matched on borders (6ba5518)

Tests

  • xls-codec: cover cell alignment, fixing a shared XF fixture that assumed it was never read (3c97bf8)
  • xls-codec: cover cell decoration reading, writing, and round-tripping (1ef0a53)
  • xls-codec: cover the new print-settings modules in the deep-import smoke test (b478302)
  • xls-codec: exercise the Palette path with a colour the default table lacks (878ee0a)
  • xls-codec: name the Lbl record by its own constant, not a bare literal (513d47b)

Dependencies

  • Updated document-schema.js to ^5.5.1
  • Updated excel-number-format to ^1.0.0
  • Updated archive-codec to ^1.4.0