forked from sheetjs/sheetjs
SheetJS
19620da30b
- BIFF5 write number formats and other features - XLSX/XLSB/BIFF8 Suppress "Number stored as Text" errors - codename awareness (fixes #992 h/t @samusstrike) - updated CFB to 1.0.3 - demo refresh
37 lines
989 B
JavaScript
37 lines
989 B
JavaScript
#!/usr/bin/env jjs
|
|
/* xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */
|
|
|
|
/* load module */
|
|
var global = (function(){ return this; }).call(null);
|
|
load('xlsx.full.min.js');
|
|
|
|
/* helper to convert byte array to plain JS array */
|
|
function b2a(b) {
|
|
var out = new Array(b.length);
|
|
for(var i = 0; i < out.length; i++) out[i] = (b[i] < 0 ? b[i] + 256 : b[i]);
|
|
return out;
|
|
}
|
|
|
|
function process_file(path) {
|
|
java.lang.System.out.println(path);
|
|
|
|
/* read file */
|
|
var path = java.nio.file.Paths.get(path);
|
|
var bytes = java.nio.file.Files.readAllBytes(path);
|
|
var u8a = b2a(bytes);
|
|
|
|
/* read data */
|
|
var wb = XLSX.read(u8a, {type:"array"});
|
|
|
|
/* get first worksheet as an array of arrays */
|
|
var ws = wb.Sheets[wb.SheetNames[0]];
|
|
var js = XLSX.utils.sheet_to_json(ws, {header:1});
|
|
|
|
/* print out every line */
|
|
js.forEach(function(l) { java.lang.System.out.println(JSON.stringify(l)); });
|
|
}
|
|
|
|
process_file('sheetjs.xlsx');
|
|
process_file('sheetjs.xlsb');
|
|
process_file('sheetjs.biff8.xls');
|