- missing formula elements rewritten to valid defined names (see #680)
- comment author length limit enforced
- XLS ifmt references renamed to numFmtId for consistency with XLSB
- removed circular symlink
- mangle/compress with uglify
- more flow comments
- systemjs browser example
- more precise file type resolution
- small corner cases from test corpus
- removed neq in tests (fixes#735 h/t @TeamworkGuy2)
- package.json devDependencies versions (fixes#740 h/t @the-spyke)
- TZ consistency for DBF and others (closes#663 h/t @peeyushsrivastava)
- Date1904 XLSX/XLSB/XLS/XLML consistency (fixes#175 h/t @SheetJSDev)
- dateNF corrects for plaintext date parsing (fixes#658 h/t @mmancosu)
- new travis tests override local time zones
- updated SSF to 0.9.2
- XLSB style records and number format writing
- CSV avoid parseFloat (fixes#646 h/t @jabbermarky)
- CSV recognize mac line ending (fixes#648 h/t @charlesread)
- BIFF2 format table refactored to align with SSF
- BIFF5 image data exposure
- SSF custom format auto table update (fixes#267 h/t @Fangmingdu)
- eslint more checks
- browser test timeout extended to 10 seconds
- browser demo save file in global (fixes#573 h/t @WildDusk)
- flesh out XLSB record expectations (fixes#624 h/t @pgeeh)
- `dense` mode (fixes#34 h/t @schleumer)
- UTF-16 Unicode Text (TXT) write
- Lotus Formatted Text (PRN) read/write
- DBF version 2 field length adjustments
- throw errors if SheetNames is invalid (fixes#376 h/t @pietersv)
- XLSB read V H VH + write V H VH
- XLSX read V H VH + write V H VH
- XLML read V H VH + write V H VH
- XLS read V H VH
- fixes#123 h/t @rla-dev @Mior
- fixes#464 h/t @enobufs @thowk
- fixes#498 h/t @digity
- fixes#503 h/t @digity
- chartsheets are now stored as sheets with "!type" set to "chart"
- fixed Strict XML Workbook Relationships
- stubbed support for dialog and macro sheets
- removed legacy XLS `!range` field
- `aoa_to_sheet` function (fixes#314 h/t @fonzy2013 @rvdwijngaard)
- `writeFileAsync` function (fixes#396 h/t @barbalex)
- `sheet_to_json` tests + docs + blankrows (fixes#602 h/t @EEaglehouse)
- write number format scan now includes every index >= 50
- propagate SSF IE8 fixes (fixes#171 h/t @sheetjsdev)
- update shim for extendscript (see #603 h/t @firas3d)
- more flow type definitions
- added more function argc counts and cleaned up error rendering
- disabled XLS error on MTRSettings (fixes#466 h/t @dskrvk)
- handle more unexpected XML empty tags (fixes#510 h/t @rahulsindc)
- throw error if SheetNames is not unique (fixes#231 h/t @zippy1981)
The optional ODS module has been completely merged into xlsx.js and the
corresponding scripts have been removed. The new xlsx.js file provides
appropriate ODS exports, so fixing is a matter of removing ods.js refs.
- codepage updated to 1.6.0 (latest)
- clean up Makefile
- adapted .travis.yml to support 0.8
- removed test files that drifted from baseline
- removed XLSB pseudo-inverse tests due to fails in node 4+
- more structure in the theme parsing
- cellDates option on parsing side creates date cells
- cellDates option on writing side creates cells with type 'd'
- cell types clarified, type 'str' phased out
- README clarifications
- more tests to ensure date consistency
- more test cases for ODS
- parsexmltag and other hot functions now better optimized for v8
- monomorphic functions (different types -> different funcs)
- more efficient decode_range implementation when source is trusted
- regular expressions cached and simplified without breaking correctness
- more efficient utf8 techniques when available
- XLSX: large functions broken down into sub-functions (e.g. `parse_ws_xml`)
- XLSB: avoid unnecessary binds
- XLSB: assume no exotic codepage exists (no one else tries to write XLSB)
- demo exposes rABS / worker / transferable options
- more tests
- jszip updated to 2.3.0
- SSF updated to 0.8.1
- codepage updated to 1.3.1
- jscs linting to check for trailing comma issues (h/t @altkatz)
- IE: phased out lazy string indexing in favor of charCodeAt
- XLSX: replaced certain operations in hot functions with faster alternatives
- updated SSF to 0.7.1
- improved coverage in tests
- eliminated functional constructs in hot functions
- format try-catch block extracted into new function
- cpexcel + codepage updated to 1.2.0
- more efficient (and correct) clean implementation of RGB/HSL/tint algorithms
- xlsx binary --all option enables every extra formatting and saving option
- column widths parsed and saved (requires cellStyles:true)
- basic style + theme parsing, option .cellStyles (h/t @eladxxx)
- more XLSB writing stubs
- correct resolution of .xml/.bin files
- sheet_to_json improvements from js-xls
o opts.header = 1 for array of arrays
o opts.header = 'A' for spreadsheet column labels
o custom opts.header array for custom labels
o opts.range = n starts from row n
o opts.range = range restricts writer to work within the specified range
- Makefile adapted to work with cygwin on windows
- read BOM, handle UTF16LE-encoded XML
- handle namespaces in [Content_Types].xml
- parse workbook rels to determine sheet files
- numbers OSX boolean support (apparently requires "0" or "1")
- XLSX force "General" style to be serialized, omit implied cell type and style
- updated SSF to 0.7.0 (h/t @sysarchitect)
- updated jszip to 2.2.2
- removed old tests/files path, replaced with test_files
- themes written
- ignore potential existence of thumbnail when calculating relationship ids
- very basic XLSX / XLSM write support with roundtrip tests (XLSB stubs)
- reorganized source tree
- new XLSB range check ensures that A1 is not emitted for empty sheets
- SSF table emitted in output (consistent with js-xls)
- CLI supports writing
Backwards-incompatible changes:
o new Property aliases (see CORE_PROPS and EXT_PROPS)
o FILETIME custom properties parsed as JS Dates
o `xlsx2csv` -> `xlsx` (and `bin/xlsx{2csv,}.njs`)
- updated SSF to 0.6.5
- XLSB 'dbcs' uses codepage
- README bugfix (h/t @noodles)
- new tests: rawjson and json baselines generated by hand
- single cell ranges are encoded as cells ("A1" instead of "A1:A1") (h/t @clxl)
- source code alignment with js-xls
- all utilities are now wrapped in XLSX object
- codepage handling (h/t @xch89820)
- formula tag attributes (h/t @shaunthomas999)
- hyperlink support (h/t @sysarchitect, fixes#55)
- coverage test spinner (to prevent travis timeouts)
- SSF updated to 0.6.1 (h/t @notatestuser)
- more tests and related XLSB records
- XLSB plaintext comment and author
- preliminary work for XLSB formats
- opts.sheetRows limits parsing; default (0) parses all rows
- added -n mode to xlsx2csv to control number of rows
- !ref will be adjusted; !fullref holds full range
- option bookFiles controls whether zip files and keys are written to object
*** Default has been flipped from "true" to "false"
- updated SSF to 0.5.8
- updated test_files to 20140216 (tests also look at 2013 XLSB)
- added dist files (make dist)
- opts.bookDeps parses calc chain; now chains are not parsed by default
- getzipdata safe option obviates some try-catch blocks
- parsing cell type 'd' (h/t @malphettes, yet again :)
- opts.WTF throws on errors
- cellHTML controls HTML generation
- cellFormula controls formula output
- sheetStubs now defaults to false
- cleaned up unnecessary CSV quotes (fixed#45)
- updated test_files to 20140211
- updated SSF to 0.5.7
- removed unused main function
- removed some dead code
- cell.r holds the raw rich text, cell.h now holds the html
(version 0.5.0 cell.raw -> cell.r, cell.r -> cell.h)
- similar changes to comments and XLSB generation
- removed some unused binary methods
Comments parts listed in the [Content Types] are parsed.
Sheets's relationships are parsed.
Comments parts are correlated to their corresponding sheets parts.
Comments's contents are added to the ref'ed cells.
Rich text styling properties are currently ignored.
For example:
{
"!ref": "A1:B3",
"A1": {
"v": 1,
"t": "n"
},
"B1": {
"v": "one",
"t": "s",
"r": "one",
"c": [
{ "a": "Yegor Kozlov",
"t": [ "Yegor Kozlov:",
"\r\nfirst cell" ]
}
]
}
}
- merged test repo with xls
- travis integration
- shifted to Apache 2.0 LICENSE
- mocha tests
The shift to Apache 2.0 was long overdue. It's becoming clear that compliance
requires deeper integration with the xls libraries and other implementations
whose specifications are covered under the OSP. It was a grave oversight for
the ISO and ECMA people to not try to implement parsers themselves, for if they
did I suspect the outcome would have been much different