forked from sheetjs/sheetjs
70 lines
2.5 KiB
Markdown
70 lines
2.5 KiB
Markdown
# xlsx
|
|
|
|
Currently a parser for XLSX files. Cleanroom implementation from the ISO 29500 Office Open XML specifications.
|
|
|
|
This has been tested on some very basic XLSX files generated from Excel 2011.
|
|
|
|
*THIS WAS WHIPPED UP VERY QUICKLY TO SATISFY A VERY SPECIFIC NEED*. If you need something that is not currently supported, file an issue and attach a sample file. I will get to it :)
|
|
|
|
## Installation
|
|
|
|
In node:
|
|
|
|
npm install xlsx
|
|
|
|
In the browser:
|
|
|
|
<script lang="javascript" src="/path/to/jszip.js"></script>
|
|
<script lang="javascript" src="/path/to/xlsx.js"></script>
|
|
|
|
## Tested Environments
|
|
|
|
- Node >= 0.8.14 (untested in versions before 0.8.14)
|
|
- IE 6/7/8/9/10 using Base64 mode
|
|
- FF 18 using Base64 or HTML5 mode
|
|
- Chrome 24 using Base64 or HTML5 mode
|
|
|
|
## Usage
|
|
|
|
See `xlsx2csv.njs` in the bin directory for usage in node.
|
|
|
|
See http://niggler.github.com/js-xlsx/ for a browser example.
|
|
|
|
Note that IE does not support HTML5 File API, so the base64 mode is provided for testing. On OSX you can get the base64 encoding by running:
|
|
|
|
$ <target_file.xlsx base64 | pbcopy # the pbcopy puts the content in the clipboard
|
|
|
|
## Notes
|
|
|
|
`.SheetNames` is an ordered list of the sheets in the workbook
|
|
|
|
`.Sheets[sheetname]` returns a data structure representing the sheet. Each key
|
|
that does not start with `!` corresponds to a cell (using `A-1` notation).
|
|
|
|
`.Sheets[sheetname][address].v` returns the value of the cell and `.Sheets[sheetname][address].t` returns the type of the cell (constrained to the enumeration `ST_CellType` as documented in page 4215 of ISO/IEC 29500-1:2012(E) )
|
|
|
|
Simple usage:
|
|
|
|
var XLSX = require('xlsx')
|
|
var xlsx = XLSX.readFile('test.xlsx');
|
|
var sheet_name_list = xlsx.SheetNames;
|
|
xlsx.SheetNames.forEach(function(y) {
|
|
for (z in xlsx.Sheets[y]) {
|
|
if(z[0] === '!') continue;
|
|
console.log(y + "!" + z + "=" + JSON.stringify(xlsx.Sheets[y][z].v));
|
|
}
|
|
});
|
|
|
|
## License
|
|
|
|
Please consult the attached LICENSE file for details. All rights not explicitly granted by the MIT license are reserved by the Original Author.
|
|
|
|
## XLS Support
|
|
|
|
XLS is not supported in this module. Due to Licensing issues [that are discussed in more detail elsewhere](https://github.com/Niggler/js-xls/issues/1#issuecomment-13852286), the implementation cannot be released in a GPL or MIT-style license. If you need XLS support, consult [my js-xls project](https://github.com/Niggler/js-xls).
|
|
|
|
## References
|
|
|
|
ISO/IEC 29500:2012(E) "Information technology — Document description and processing languages — Office Open XML File Formats"
|
|
|