xlsxworker1.js 962 B

12345678910111213141516171819202122232425262728293031
  1. /* xlsx.js (C) 2013-2015 SheetJS -- http://sheetjs.com */
  2. /* uncomment the next line for encoding support */
  3. //importScripts('dist/cpexcel.js');
  4. importScripts('jszip.js');
  5. importScripts('xlsx.js');
  6. /* uncomment the next line for ODS support */
  7. importScripts('dist/ods.js');
  8. postMessage({t:"ready"});
  9. function ab2str(data) {
  10. var o = "", l = 0, w = 10240;
  11. for(; l<data.byteLength/w; ++l) o+=String.fromCharCode.apply(null,new Uint8Array(data.slice(l*w,l*w+w)));
  12. o+=String.fromCharCode.apply(null, new Uint8Array(data.slice(l*w)));
  13. return o;
  14. }
  15. function s2ab(s) {
  16. var b = new ArrayBuffer(s.length*2), v = new Uint16Array(b);
  17. for (var i=0; i != s.length; ++i) v[i] = s.charCodeAt(i);
  18. return [v, b];
  19. }
  20. onmessage = function (oEvent) {
  21. var v;
  22. try {
  23. v = XLSX.read(ab2str(oEvent.data), {type: 'binary'});
  24. } catch(e) { postMessage({t:"e",d:e.stack}); }
  25. var res = {t:"xlsx", d:JSON.stringify(v)};
  26. var r = s2ab(res.d)[1];
  27. postMessage(r, [r]);
  28. };