forked from sheetjs/sheetjs
SheetJS
54b528eaed
The optional ODS module has been completely merged into xlsx.js and the corresponding scripts have been removed. The new xlsx.js file provides appropriate ODS exports, so fixing is a matter of removing ods.js refs.
30 lines
885 B
JavaScript
30 lines
885 B
JavaScript
/* xlsx.js (C) 2013-present 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]);
|
|
};
|