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.
package.json
added types inexports
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 https://bugs.webkit.org/show_bug.cgi?id=243148
- 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
andprocess
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
andget_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
anddecode_cell
do 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")
cellStyles
option impliessheetStubs
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 functionsheet_to_json
explicitly supportnull
as alias for default behaviorencode_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
- XLSX ignore XML artifacts
- HTML capture and persist merges
dist/xlsx.mini.min.js
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 crashesstream.to_json
doesn't end up accidentally scanning to max row
sheet_to_json
default 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
WTF
mode)
JSZip
renamed 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
require
statements 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:true
to emit Dates) - Module does not export CFB
--perf
renamed 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
!range
field removed - Hyperlink tooltip is stored in the
Tooltip
field
sheet_to_json
now passesnull
values whenraw
is set totrue
sheet_to_json
treatsnull
stub cells as values in conjunction withraw
cellDates
affects 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.js
source 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