forked from sheetjs/sheetjs
		
	- parsexmltag and other hot functions now better optimized for v8 - monomorphic functions (different types -> different funcs) - more efficient decode_range implementation when source is trusted - regular expressions cached and simplified without breaking correctness - more efficient utf8 techniques when available - XLSX: large functions broken down into sub-functions (e.g. `parse_ws_xml`) - XLSB: avoid unnecessary binds - XLSB: assume no exotic codepage exists (no one else tries to write XLSB) - demo exposes rABS / worker / transferable options - more tests - jszip updated to 2.3.0 - SSF updated to 0.8.1 - codepage updated to 1.3.1
		
			
				
	
	
		
			30 lines
		
	
	
		
			886 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			886 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
/* xlsx.js (C) 2013-2014 SheetJS -- http://sheetjs.com */
 | 
						|
/* uncomment the next line for encoding support */
 | 
						|
//importScripts('dist/cpexcel.js');
 | 
						|
importScripts('jszip.js');
 | 
						|
importScripts('xlsx.js');
 | 
						|
postMessage({t:"ready"});
 | 
						|
 | 
						|
function ab2str(data) {
 | 
						|
	var o = "", l = 0, w = 10240;
 | 
						|
	for(; l<data.byteLength/w; ++l) o+=String.fromCharCode.apply(null,new Uint8Array(data.slice(l*w,l*w+w)));
 | 
						|
	o+=String.fromCharCode.apply(null, new Uint8Array(data.slice(l*w)));
 | 
						|
	return o;
 | 
						|
}
 | 
						|
 | 
						|
function s2ab(s) {
 | 
						|
  var b = new ArrayBuffer(s.length*2), v = new Uint16Array(b);
 | 
						|
  for (var i=0; i != s.length; ++i) v[i] = s.charCodeAt(i);
 | 
						|
  return [v, b];
 | 
						|
}
 | 
						|
 | 
						|
onmessage = function (oEvent) {
 | 
						|
  var v;
 | 
						|
  try {
 | 
						|
    v = XLSX.read(ab2str(oEvent.data), {type: 'binary'});
 | 
						|
  } catch(e) { postMessage({t:"e",d:e.stack}); }
 | 
						|
  var res = {t:"xlsx", d:JSON.stringify(v)};
 | 
						|
  var r = s2ab(res.d)[1];
 | 
						|
  postMessage(r, [r]);
 | 
						|
};
 |