function saveWorkbook(cb) {
		//console.log(wb);
		var XLSX;

		if (typeof filename == 'undefined') {
			res = wb;
		} else {
			XLSX = getXLSX();

			if (utils.isNode || utils.isMeteorServer) {
				XLSX.writeFile(wb, filename);
			} else {
				var wopts = {bookType: 'xlsx', bookSST: false, type: 'binary'};
				var wbout = XLSX.write(wb, wopts);

				var s2ab = function (s) {
					var buf = new ArrayBuffer(s.length);
					var view = new Uint8Array(buf);
					for (var i = 0; i != s.length; ++i) view[i] = s.charCodeAt(i) & 0xff;
					return buf;
				};

				saveAs(new Blob([s2ab(wbout)], {type: 'application/octet-stream'}), filename);
			}
		}
		/*/*
		// data.forEach(function(d){
		// 	s += columns.map(function(col){
		// 		return d[col.columnid];
		// 	}).join(opts.separator)+'\n';
		// });
		// alasql.utils.saveFile(filename,s);
*/
	}
Save Workbook
		@params {array} wb Workbook
		@params {callback} cb Callback