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
887 B
JavaScript
30 lines
887 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 Uint16Array(data.slice(l*w,l*w+w)));
|
|
o+=String.fromCharCode.apply(null, new Uint16Array(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]);
|
|
};
|