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.
33 lines
1.0 KiB
JavaScript
33 lines
1.0 KiB
JavaScript
/* xlsx.js (C) 2013-present SheetJS -- http://sheetjs.com */
|
|
/* uncomment the next line for encoding support */
|
|
/*:: declare var XLSX: XLSXModule; */
|
|
/*:: declare var self: DedicatedWorkerGlobalScope; */
|
|
importScripts('dist/cpexcel.js');
|
|
importScripts('jszip.js');
|
|
importScripts('xlsx.js');
|
|
/*::self.*/postMessage({t:"ready"});
|
|
|
|
function ab2str(data) {
|
|
var o = "", l = 0, w = 10240;
|
|
for(; l<data.byteLength/w; ++l) o+=String.fromCharCode.apply(null,/*::(*/new Uint16Array(data.slice(l*w,l*w+w))/*:: :any)*/);
|
|
o+=String.fromCharCode.apply(null, /*::(*/new Uint16Array(data.slice(l*w))/*:: :any)*/);
|
|
return o;
|
|
}
|
|
|
|
function s2ab(s/*:string*/) {
|
|
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) { /*::self.*/postMessage({t:"e",d:e.stack}); }
|
|
var res = {t:"xlsx", d:JSON.stringify(v)};
|
|
var r = s2ab(res.d)[1];
|
|
/*::self.*/
|
|
postMessage(r, [r]);
|
|
};
|