2023-04-17 23:39:28 -04:00

8.0 KiB


This log is intended to keep track of backwards-incompatible changes, including but not limited to API changes and file location changes. Minor behavioral changes may not be included if they are not expected to break existing code.


  • XLSX Ensure comment address is valid (h/t @slonser)
  • Enforce Excel worksheet name restrictions


  • XLSX proper decoding of hyperlinks (h/t @tw-yaxu)
  • XLSX ignore unexpected attributes in rich text (h/t @colin4)
  • sheet_to_json type fix (h/t @chsdwn)


  • Fixed types issue in strict mode (h/t @younes-io)
  • Numbers 12.2 parsing skip ActivityStream.iwa


  • XLSX export hyperlinks compatible with google sheets (h/t Evan Bovie)
  • NUMBERS export multiple sheets, full worksheet range
  • formalized dense mode


  • package.json added types in exports structure
  • uncapped NUMBERS single-sheet single-table export
  • DBF export records using supported codepages


  • Base64 input ignore data URI wrapper
  • Parse ZIP files that use ZIP64 extended information field
  • More precise handling of time-only values
  • Threaded Comment fallback text for older Excel


  • exports field in package.json to satiate ViteJS and newer tooling
  • JSC (Safari / Bun) perf, see
  • workbook bookType property to denote the origin format when parsed from file
  • XLSX force export of stub cells with number formats when sheetStubs is set


  • XLSX / ODS write defined names
  • sync defined names to AutoFilter setting on export
  • 1904 date system setting properly roundtripped
  • ODS read/write number formats


  • Plaintext parsing of dateless meridien time values (1:23:45 PM)
  • Legacy format (SYLK / WK# / Multiplan) minutiae


  • Normalized handling of \r and \n newline characters


  • Removed all npm dependencies
  • Auto-correct bad Google Sheets format d.m
  • NUMBERS write merge cells, cells up to column "ALL"


  • Enabled sideEffects: false in package.json
  • Basic NUMBERS write support


  • CSV output omits trailing record separator
  • Properly terminate NodeJS Streams
  • DBF preserve column types on import and use when applicable on export


  • Removed references to require and process in browser builds


  • Hotfix for unicode processing of XLSX exports


  • Removed Node ESM build script and folded into standard ESM build
  • Removed undocumented aliases including make_formulae and get_formulae


  • Browser scripts only expose XLSX variable
  • Module no longer ships with dist/jszip.js browser script


  • CLI script moved to xlsx-cli package


  • window.XLSX explicit assignment to satiate LWC
  • CSV Proper formatting of errors
  • HTML emit data-* attributes


  • Browser and Node optional ESM support
  • DSV correct handling of bare quotes (h/t @bgamrat)


  • XLSB writer uses short cell form when viable


  • mini build includes ODS parse/write support
  • DBF explicitly cap worksheet to 1<<20 rows
  • XLS throw errors on truncated records


  • Disabled PRN parsing by default (better support for CSV without delimeters)


  • skip empty custom property tags if data is absent (fixes DocSecurity issue)
  • HTML output add raw value, type, number format
  • DOM parse look for v / t / z attributes when determining value
  • double quotes in properties escaped using _x0022_
  • changed AMD structure for NetSuite and other RequireJS implementations
  • encode_cell and decode_cell do not rely on encode_col / decode_col


  • Date handling changed
  • XLML certain tag tests are now case insensitive
  • Fixed potentially vulnerable regular expressions


  • CFB prevent infinite loop
  • ODS empty cells marked as stub (type "z")
  • cellStyles option implies sheetStubs


  • sheets parse option to specify which sheets to parse


  • AOA utilities properly preserve number formats
  • Number formats captured in stub cells


  • Properties and Custom Properties properly XML-encoded


  • sheet_get_cell utility function
  • sheet_to_json explicitly support null as alias for default behavior
  • encode_col throw on negative column index
  • HTML properly handle whitespace around tags in a run
  • HTML use id option on write
  • Files starting with 0x09 followed by a display character are now TSV files
  • XLS parse references col/row indices mod by the correct number for BIFF ver
  • XLSX comments moved to avoid overlapping cell
  • XLSB outline level
  • AutoFilter update _FilterDatabase defined name on write
  • XLML skip CDATA blocks

v0.15.1 (2019-08-14)

  • XLSX ignore XML artifacts
  • HTML capture and persist merges


  • dist/ mini build with XLSX read/write and some utilities
  • Removed legacy conversion utility functions


  • XLS PtgNameX lookup
  • XLS always create stub cells for blank cells with comments


  • Better treatment of skipHidden in CSV output
  • Ignore CLSID in XLS
  • SYLK 7-bit character encoding
  • SYLK and DBF codepage support


  • Proper shifting of addresses in Shared Formulae


  • Proper XML encoding of comments


  • raw cell objects can be passed to sheet_add_aoa
  • _FilterDatabase fix for AutoFilter-related crashes
  • stream.to_json doesn't end up accidentally scanning to max row

0.14.0 (2018-09-06)

  • sheet_to_json default flipped to raw: true

0.13.5 (2018-08-25)

  • HTML output generates <br/> instead of encoded newline character

0.13.2 (2018-07-08)

  • Buffer.from shim replaced, will not be defined in node <=0.12

0.13.0 (2018-06-01)

  • Library reshaped to support AMD out of the box

0.12.11 (2018-04-27)

  • XLS/XLSX/XLSB range truncation (errors in WTF mode)

0.12.4 (2018-03-04)

  • JSZip renamed to JSZipSync

0.12.0 (2018-02-08)

  • Extendscript target script in NPM package

0.11.19 (2018-02-03)

  • Error on empty workbook

0.11.16 (2017-12-30)

  • XLS ANSI/CP separation
  • 'array' write type and ArrayBuffer processing

0.11.6 (2017-10-16)

  • Semicolon-delimited files are detected

0.11.5 (2017-09-30)

  • Bower main script shifted to full version
  • 'binary' / 'string' encoding

0.11.3 (2017-08-19)

  • XLS cell ixfe/XF removed

0.11.0 (2017-07-31)

  • Strip require statements from minified version
  • minifier mangler enabled

0.10.9 (2017-07-28)

  • XLML/HTML resolution logic looks further into the data stream to decide type
  • Errors thrown on suspected RTF files

0.10.5 (2017-06-09)

  • HTML Table output header/footer should not include <table> tag

0.10.2 (2017-05-16)

  • Dates are converted to numbers by default (set cellDates:true to emit Dates)
  • Module does not export CFB

0.9.10 (2017-04-08)

  • --perf renamed to --read-only

0.9.9 (2017-04-03)

  • default output format changed to XLSB
  • comment text line endings are now normalized
  • errors thrown on write when worksheets have invalid names

0.9.7 (2017-03-28)

  • XLS legacy !range field removed
  • Hyperlink tooltip is stored in the Tooltip field

0.9.6 (2017-03-25)

  • sheet_to_json now passes null values when raw is set to true
  • sheet_to_json treats null stub cells as values in conjunction with raw

0.9.5 (2017-03-22)

  • cellDates affects parsing in non-XLSX formats

0.9.3 (2017-03-15)

  • XLML property names are more closely mapped to the XLSX equivalent
  • Stub cells are now cell type z

0.9.2 (2017-03-13)

  • Removed stale TypeScript definition files. Flowtype comments are used in the xlsx.flow.js source and stripped to produce xlsx.js.
  • sed usage reworked to support GNU sed in-place form. BSD sed seems to work, but the build script has not been tested on other sed variants:
$ sed -i.ext  [...] # GNU
$ sed -i .ext [...] # bsd

0.9.0 (2017-03-09)

  • Removed ods.js source. The xlsx.js source absorbed the ODS logic and exposes the ODS variable, so projects should remove references to ods.js