Commit Graph

264 Commits

Author SHA1 Message Date
Mo de Ruiter
5942587509 Remove global variable "cellen" 2014-10-07 17:12:04 +02:00
19f3a6ae76 version bump 0.7.10: cleanup
- build bower.json (h/t @jjstewart, following the change from js-xls)
- README clarification on !ref (fixes )
- XLSX treat empty <v/> tags as empty cells (h/t @clarlars)
- XLSX write !merges array (fixes )
2014-08-26 13:40:04 -04:00
127a430e79 version bump 0.7.9: updating jszip to 2.4.0
Fixes 
2014-08-21 11:44:30 -04:00
d4999ac421 version bump 0.7.8: docs, defaults, details
- browser shim updated (h/t @wintersm for discovering this)
- smart tag ignores (h/t @lostinplace)
- sheet_to_row_object_array bugfix (fixes , h/t @ChrisBurkeBSD)
- README improved
- baltic and vietnamese codepages: updated codepage to 1.3.4
- iOS Numbers can handle inline strings -> disabling SST by default
- avoid Buffer accessors (see https://github.com/joyent/node/issues/7809)
- caching certain hot regexes
2014-07-28 09:22:32 -04:00
Chris Wheeler
19c22fa34a Prevented crash on wbfactoid 2014-07-14 11:53:04 -04:00
6bc24374b9 version bump 0.7.7: needs more cowbell
- 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
2014-06-29 14:29:45 -04:00
aa46ada7b8 version bump 0.7.6-i: more browserify
h/t @volodymyrl
2014-06-27 11:11:33 -04:00
662c550d9e version bump 0.7.6-h: browserify issues
- updated codepage to 1.3.1 (h/t @volodymyrl)
2014-06-27 09:58:43 -04:00
87bbe636d3 version bump 0.7.6-a: npm is flaky [ci skip]
The original push showed up as failed, pushing again
2014-06-05 03:25:49 -04:00
44b55c5c56 version bump 0.7.6: IE compatibility
- 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
2014-06-05 03:06:20 -04:00
altkatz
a96b723cda IE Compatibility and notes 2014-06-03 14:44:08 -04:00
009946339c version bump 0.7.5: more performance
- 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)
2014-06-02 01:19:07 -04:00
d882757c0a enforcing 31 character sheet name restriction 2014-05-31 11:44:56 -04:00
a3d9c4d9ac version bump 0.7.4: I/O improvements
- 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
2014-05-29 18:30:03 -04:00
eladxxx
5e9bca78f2 Initial implementation of style/theme parsing.
Huge thanks to @SheetJS for guidance on how to do all of this!

Experimental, guarded by the cellStyles option (default: false)
2014-05-29 09:18:23 +03:00
489b9cdde4 version bump 0.7.3: performance
- require cpexcel instead of full codepage library
- hardcode the unescapexml regexp
- utf8read short circuit for ASCII strings
- cellFormulae also acts on XLSX/XLSM
- bin/xlsx.njs do not process formulae unless requested
2014-05-25 02:04:08 -07:00
e1f8dbb863 version bump 0.7.2: bughunt
- 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
2014-05-22 05:16:51 -07:00
fbb2574191 removed stray comma (fixes ) 2014-05-17 11:57:29 -07:00
a1990758a0 version bump 0.7.1: test now ignores missing files
apparently openpyxl removed a few test files from their suite :/
2014-05-15 20:02:26 -07:00
d15b81e0e9 version bump 0.7.0: Basic write support
- 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`)
2014-05-15 17:33:34 -07:00
b645f6ef98 version bump 0.6.2: bits reorganization
- 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
2014-05-03 11:51:10 -07:00
6801958327 version bump 0.6.1: dist cleanup
- XLSX format strings properly handles literal UTF8 chars (test apachepoi_49273)
- codepage updated to 1.0.0
- jszip updated to 2.2.0 (node-only)
- dist now contains jszip and codepage dependencies
- updated test_files
2014-04-22 18:37:08 -07:00
dc2d391fbc version bump 0.6.0: avoid globals
- 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 )
- coverage test spinner (to prevent travis timeouts)
2014-04-15 02:04:03 -07:00
xu.chenhui
732cc073cf Fix a variable is undefined forever 2014-04-05 04:52:24 -04:00
0af8b20f0e version bump 0.5.17: do not throw for unknown tags
Fixes 
2014-04-04 16:03:43 -07:00
03588e332c version bump 0.5.16: content types et al
- added `bookVBA` option
- content type default corner cases
- fleshed out content type list
- XML parsing ignores namespaces
- updated SSF to 0.6.4
- testA tets enforce sheetRows=10 (shorter tests)
2014-04-03 15:51:54 -07:00
56b10f3616 version bump 0.5.15: converging tests
- test script normalized
- proper handling of empty sheet ranges
- xlsb sheetStubs and calcchain parsing
- jshint passes
- updated SSF to 0.6.2
2014-03-29 15:53:15 -07:00
d462e18846 version bump 0.5.14: XLSB comments
- 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
2014-03-28 19:05:50 -07:00
37cc0006f2 version bump 0.5.13: merge cells
merge ranges stored in !merges
- XLSB BrtMergeCell
- XLSX mergeCells (h/t @clayzermk1 for discussion )
- More XLSB Record cases
- merge test (js-xls test)
2014-03-23 14:30:00 -07:00
0a8304c076 version bump 0.5.12: pass AutoFilter tests
- XLSB Brt* records
2014-03-20 19:44:27 -07:00
2df14a3cce version bump 0.5.11: removing XLSB training wheels
- Brt* errors restored
- updated SSF to 0.5.9
2014-03-19 10:53:20 -07:00
49a37c9cf5 version bump 0.5.10-b: guard against corrupt SSF
- prevent overriding format code 0
- pivot table styles
2014-02-26 14:30:32 -05:00
ecee362e00 version bump 0.5.10-a: xlsx performance
- utf8 translation pushes to array rather than string concat
- large_strings test actually runs now (rather than blowing up)
2014-02-22 16:36:28 -05:00
ad20bf9b83 version bump 0.5.10: numbers iOS fix
Most writers write sheets to

xl/worksheets/sheetN.xml (where N is 1-indexed)

Numbers for iOS apparently writes to

xl/worksheets/sheet.xml (for first sheet)
xl/worksheets/sheetN.xml (N>1, 0-indexed -- sheet1.xml corresponds to 2nd sheet)

The right thing to do is to dig into workbook rels, but that's for another day
2014-02-21 11:41:37 -05:00
5c4b5827b5 version bump 0.5.9: sheetRows partial processing
- 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
2014-02-18 22:03:28 -05:00
33fbc389c5 version bump 0.5.8: bookFiles, default change
- 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)
2014-02-17 03:44:22 -05:00
c0a8bef07c version bump 0.5.7: WTF-ification
- 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
2014-02-15 00:08:18 -05:00
Hugues Malphettes
a66ff4462e Support cells for the 'd' date type 2014-02-15 11:15:10 +08:00
2cb06e0fb8 version bump 0.5.6: custom properties
- custom properties (h/t @hmalphettes)
- new option bookProps
- added minified target (using uglify-js)
2014-02-14 01:25:46 -05:00
Hugues Malphettes
f5f9229ab2 Support custom properties
and return them as the hash workbook.Custprops
2014-02-14 11:39:03 +08:00
72d7707152 test cleanup 2014-02-13 03:48:41 -05:00
1dceeffbe9 version bump 0.5.5: sheet names optimization
- bookSheets option skips worksheet parsing (used by xlsx2csv)
- filtered tests (by file extension)
- XLSB formulae stubs
2014-02-13 01:22:42 -05:00
7e9f218f0f version bump 0.5.4: more options
- cellHTML controls HTML generation
- cellFormula controls formula output
- sheetStubs now defaults to false

- cleaned up unnecessary CSV quotes (fixed )
- updated test_files to 20140211
- updated SSF to 0.5.7
- removed unused main function
- removed some dead code
2014-02-12 01:09:42 -05:00
27af8a6d6a version bump 0.5.3: options!
- read and readFile accept opts argument:
o cellNF (default false) true -> cell.z holds number format string
o sheetStubs (default true) false -> stub cells not emitted

- name consistency (parse_workbook -> parse_wb_xml)
- README updates
- CONTRIBUTING notes added
2014-02-07 05:53:40 -05:00
99d879ee30 version bump 0.5.2: chores
- node jszip updated to 2.1.0 as per https://github.com/Stuk/jszip/issues/84
- travis 0.8 tests restored
- get_formulae ignores undefined values
- updated test_files to 20140206
2014-02-06 17:02:11 -05:00
972897c9ae version bump 0.5.1: field reorg
- 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
2014-02-05 08:39:21 -05:00
242d5c655e xlsb browser fix 2014-02-04 11:10:42 -05:00
a96d8964e2 version bump 0.5.0: changes to cell interface
Cell object stores the formatted text in the `.w` field
- Raw format and types are preserved in the `.t`, `.v` fields
- Accessors have been updated to use the field

updates for older OOXML:
- ECMA-376 makes reference to old sstItem shared string item
- [MS-XLSX] xmlns for workbook
2014-02-03 19:00:44 -05:00
5c4bf62b83 version bump 0.4.3: shared strings and formatting
- XLSB basic support for number formats
- removed extraneous Strings table element
- formatting xml tags (rich_stress_test)
- updating test_files to 20130130
2014-01-31 06:52:18 -05:00
47dd984a6c version bump 0.4.2: using jszip module on node
- updated test_files
- new dependency in node: jszip
2014-01-29 22:06:14 -05:00
6990e66a56 version bump 0.4.1: more XLSB + cleanup
- updated ssf to 0.5.4
- cleaned up CSV string output
- added CSV tests (from test_files)
- passes lint
- inlineStr actually parses <is> block
- more XLSB bits
2014-01-29 01:00:09 -05:00
32d835ab81 version bump 0.4.0: very basic XLSB support
subfiles reshuffled (XLSB and XLSX/XLSM content separated)
2014-01-28 11:38:02 -05:00
844850abab version bump 0.3.10: xlsm support
different workbook content type, same representation
2014-01-25 17:28:27 -05:00
9c9aad5df3 version bump 0.3.9: general format used by default
(when no format or style is found, use general)

Other whitespace cleanup
2014-01-23 11:14:11 -05:00
a1ccaf511d version bump 0.3.8: more formatting
- updated SSF to 0.5.3

tests without baselines now try to generate CSV output
2014-01-23 01:20:19 -05:00
dd0a649c95 version bump 0.3.7: comments and coverage
- parsing comments (h/t @kinwahlai, @hmalphettes)
- XLSX.version now exposed in source
- code coverage
- updated SSF to 0.5.2
- updated tests/files
2014-01-21 23:58:26 -05:00
Hugues Malphettes
9efa4e2aae Update the range of the sheet when creating a cell for the content of its comments 2014-01-21 06:05:00 +07:00
Hugues Malphettes
5d43dffc79 Share the code for parsing the rich text and use it to parse the comments. 2014-01-18 21:45:49 +08:00
Hugues Malphettes
36f7080a68 Comments maybe contain an empty text tag 2014-01-18 16:29:51 +08:00
kinwah
59d9d9086b Support for parsing Comments
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" ]
      }
    ]
  }
}
2014-01-16 10:30:01 +08:00
37753d8230 version bump 0.3.6: updating SSF
Addresses issue from LO Calc files generating invalid formats.

Link: https://github.com/SheetJS/js-xls/issues/24
2013-12-31 11:42:46 -05:00
afc4e281af version bump 0.3.5: updating SSF
- updated sheetnames tests
- updated ssf
2013-12-26 22:15:16 -05:00
e186e55341 version bump 0.3.4: updating SSF and related tests
version bump needed for npm
2013-12-16 11:38:10 -05:00
phola
02a0510c7b added check for module as well as require for node environment
see PR : https://github.com/SheetJS/js-xls/pull/23
2013-11-22 16:24:55 +00:00
7a3ca6a1ab added simple typescript reference file 2013-11-15 05:35:40 -08:00
0a70e1950f updated SSF dependency 2013-11-12 09:08:31 -08:00
b4f7030634 version bump 0.3.3: malformed xlsx parsing
Files that cannot be processed by Excel 2011 were removed from the suite
2013-11-12 08:29:55 -08:00
2cdd09f801 browser cleanup
utils should not be leaked
2013-11-09 13:21:03 -08:00
0b642080bf version bump 0.3.2: cleanup
- updated jszip to version 2 (20121106)
- added some .match guards (2)
- updated package.json
2013-11-06 00:09:23 -08:00
9e41edcbd2 cleaning up XLSX leak 2013-10-30 19:53:16 -07:00
fd6e3fa19b version bump 0.3.1: more cleanup
- xlsx2csv mirrors xls2csv options
- passes lint
- protection tag (1)
2013-10-30 15:42:27 -07:00
5d79aca2da version bump 0.2.8: range fix
Fixes 
2013-10-28 13:28:17 -07:00
dd9ac7d97f Removed unnecessary console.error statements
Fixes 

h/t Sebmaster for pointing this out
2013-10-10 02:53:15 -04:00
d85183c75f version bump 0.2.7-d: CSV generation issue
double-quotes are emitted as \"\"
2013-10-10 02:53:02 -04:00
81f89d6f4e version bump 0.2.7-c: basic html from sst
Very basic rendering.  Will ultimately be a separate component (to share code
with the more general formatting case)
2013-10-10 02:44:18 -04:00
55ba84d561 version bump 0.2.7-b: formatted string support
Mixed formatting stored in the shared string table.

Ultimately there will be a function to convert to HTML, but in the interim this
extracts plaintext and populates the right fields
2013-10-10 02:44:18 -04:00
247fd22c06 jshint passes 2013-10-10 02:44:18 -04:00
c5c3eebb09 LICENSE clarification; get_formulae function
To avoid future confusion, any code shared between this and the XLS project
relate to concepts discussed in ECMA-376 and hence fall within the purview of
this project's license.  A similar note should appear in the license for the
other projects.
2013-10-10 02:44:18 -04:00
5341a85f55 version bump 0.2.6: IE10 Drag and Drop support 2013-10-10 02:44:18 -04:00
1dc777f521 version bump 0.2.5: IE fix
IE apparently doesn't like [^], so the checks have been replaced with [^\u2603]
(eliminating ☃ the unicode snowman)
2013-10-10 02:44:18 -04:00
6716857483 shielding csv parser from unsupported formats 2013-10-10 02:44:18 -04:00
d54b9eaa71 version bump 0.2.4: CSV unwind JS escaping 2013-10-10 02:44:18 -04:00
e3301e1ff1 version bump 0.2.3: refactoring
- internally renamed count->Count and uniqueCount->Unique like xlsjs
- factored out xml bool parsing
2013-10-10 02:44:18 -04:00
8fc0f91395 Fixed xml parsing of '0' in date1904 2013-10-10 02:44:18 -04:00
a0b73e3d4f Version bump 0.2.1: date1904 support
date1904 flag now propagated to SSF
2013-10-10 02:44:18 -04:00
0d8fedfe1f added 'e' format from SSF 2013-10-10 02:44:18 -04:00
f47eafea77 minor cleanup 2013-10-10 02:44:18 -04:00
1071d03040 Corrected spec error in format code 14 2013-10-10 02:44:18 -04:00
cebc377e06 version bump 0.2.0: formatting
- Basic Format Code support (fixes )
- basic inlineStr parsing

note that the SSF stuff will ultimately rest in a separate repo
2013-10-10 02:44:18 -04:00
e556483faa more spec references 2013-10-10 02:44:18 -04:00
3925e53476 cleanup and spec references 2013-10-10 02:44:17 -04:00
3d0315358a whitespace cleanup 2013-10-10 02:44:17 -04:00
7d7d26a9cd fixing empty string regression
h/t @nathanathan
2013-10-10 02:44:17 -04:00
Nathan Breit
cd2cd0ba0d Fixing accidental detection of require.js as common js
I changed to code to check for common js by looking for exports and module instead. Also, would it be possible to require fs inside the function where it's used?
2013-10-10 02:44:17 -04:00
f1aa13dfaf version bump 0.1.5: proper parsing of strings
Note that CHAR actually appears to do different things in OSX and Windows ...

Need to build a separate codepage converter
2013-10-10 02:44:17 -04:00
ce9e211760 xml preserve space regex 2013-10-10 02:44:17 -04:00
d5da2eb017 version bump 0.1.4
- Handle 'e' error cells (sticking the actual error code in .err, .v undefined)
- Added quot and apos to encodings
2013-10-10 02:44:17 -04:00
91266af9aa Google Docs Sheet order incompatibility
Fixes .

Google Docs does not emit worksheet information, and furthermore does not follow
the sheet order as prescribed in the `[Content-Types].xml` metadata.  This
workaround forces it to treat the sheet list in Workbook as the map to the files
`xl/worksheets/sheet##.xml` even though the rIds are different.
2013-10-10 02:44:17 -04:00
28873fc0b5 version bump 0.1.2: Unicode Support
Motivated by inquiry regarding Hebrew support
2013-10-10 02:44:17 -04:00
378991cb30 Fixing one-off error in imputing range with gdocs
Fixes 

Note: Google Docs does not generate a 'spans' attribute, but opening and saving
with Excel appears to resolve the issue.
2013-10-10 02:44:17 -04:00
c960dca068 updated json output to reflect number headers 2013-10-10 02:44:17 -04:00
83f7112ceb fixed xml parsing issue with singleton formula 2013-10-10 02:44:17 -04:00
49c3d865b8 Named Ranges silently ignored
Fixes 

This is not the final fix -- the named ranges should be parsed
2013-10-10 02:44:17 -04:00
b275e4d4b5 Boolean value parsing 2013-10-10 02:44:17 -04:00
Nathan Breit
ba7b24a5d6 Adding ability to handle numbers and bools 2013-10-10 02:44:17 -04:00
269b6a665d LibreOffice xlsx baseline 2013-10-10 02:44:16 -04:00
1a18fff81d excel 2013 baseline parsing 2013-10-10 02:44:16 -04:00
8c5151af9f Fixing issue with stray XLSX.utils in xlsx.js
fixes 
2013-10-10 02:44:16 -04:00
b31ba59607 Handling Google Docs Quirks
closes 
2013-10-10 02:44:16 -04:00
a9dd6def72 refactoring the csv generation code
XLSX.utils.sheet_to_csv
2013-10-10 02:44:16 -04:00
077056d984 Handling empty typeless cells
@nathanathan presented a case generated from excel, which had the cell:

    <c r="E1" s="1"/>

The schema is incorrect here (advising to treat it as a NaN value).  The right
thing to do is to treat it as `undefined`.
2013-10-10 02:44:16 -04:00
Nathan Breit
8f5151c2e0 Fixing a conversion bug and adding JSON helper
closes 
2013-10-10 02:44:16 -04:00
f010c3165e Resolved issue with empty sheet generating single <sheetData/> tag 2013-10-10 02:44:16 -04:00
5806249485 initial 2013-10-10 02:43:57 -04:00