# 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:
    
    
## Usage
See `xlsx2csv.njs` in the bin directory for usage in node.
See http://niggler.github.com/js-xlsx/ for a browser example.
## 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 zip.Sheets[y]) {
        if(z[0] === '!') continue;
        console.log(y + "!" + z + "=" + JSON.stringify(zip.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"