#!/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');