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 proper decoding of hyperlinks (h/t @tw-yaxu)
- XLSX ignore unexpected attributes in rich text (h/t @colin4)
sheet_to_jsontype 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
densemode
package.jsonadded types inexportsstructure- 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
exportsfield in package.json to satiate ViteJS and newer tooling- JSC (Safari / Bun) perf, see https://bugs.webkit.org/show_bug.cgi?id=243148
- workbook
bookTypeproperty to denote the origin format when parsed from file - XLSX force export of stub cells with number formats when
sheetStubsis 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
\rand\nnewline characters
- Removed all npm dependencies
- Auto-correct bad Google Sheets format
d.m - NUMBERS write merge cells, cells up to column "ALL"
- Enabled
sideEffects: falsein 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
requireandprocessin 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_formulaeandget_formulae
- Browser scripts only expose
XLSXvariable - Module no longer ships with
dist/jszip.jsbrowser script
- CLI script moved to
xlsx-clipackage
window.XLSXexplicit 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)
XLSBwriter 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
PRNparsing 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/zattributes when determining value - double quotes in properties escaped using
_x0022_ - changed AMD structure for NetSuite and other RequireJS implementations
encode_cellanddecode_celldo not rely onencode_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")
cellStylesoption impliessheetStubs
sheetsparse 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_cellutility functionsheet_to_jsonexplicitly supportnullas alias for default behaviorencode_colthrow on negative column index- HTML properly handle whitespace around tags in a run
- HTML use
idoption on write - Files starting with
0x09followed 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
_FilterDatabasedefined name on write - XLML skip CDATA blocks
- XLSX ignore XML artifacts
- HTML capture and persist merges
dist/xlsx.mini.min.jsmini 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
skipHiddenin 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 _FilterDatabasefix for AutoFilter-related crashesstream.to_jsondoesn't end up accidentally scanning to max row
sheet_to_jsondefault flipped toraw: true
- HTML output generates
<br/>instead of encoded newline character
- Buffer.from shim replaced, will not be defined in node
<=0.12
- Library reshaped to support AMD out of the box
- XLS/XLSX/XLSB range truncation (errors in
WTFmode)
JSZiprenamed toJSZipSync
- Extendscript target script in NPM package
- Error on empty workbook
- XLS ANSI/CP separation
- 'array' write type and ArrayBuffer processing
- Semicolon-delimited files are detected
- Bower main script shifted to full version
- 'binary' / 'string' encoding
- XLS cell ixfe/XF removed
- Strip
requirestatements from minified version - minifier mangler enabled
- XLML/HTML resolution logic looks further into the data stream to decide type
- Errors thrown on suspected RTF files
- HTML Table output header/footer should not include
<table>tag
- Dates are converted to numbers by default (set
cellDates:trueto emit Dates) - Module does not export CFB
--perfrenamed to--read-only
- default output format changed to XLSB
- comment text line endings are now normalized
- errors thrown on write when worksheets have invalid names
- XLS legacy
!rangefield removed - Hyperlink tooltip is stored in the
Tooltipfield
sheet_to_jsonnow passesnullvalues whenrawis set totruesheet_to_jsontreatsnullstub cells as values in conjunction withraw
cellDatesaffects parsing in non-XLSX formats
- XLML property names are more closely mapped to the XLSX equivalent
- Stub cells are now cell type
z
- Removed stale TypeScript definition files. Flowtype comments are used in the
xlsx.flow.jssource and stripped to producexlsx.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- 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