npmcomponent / chemzqm-xlsx.js

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

This repository is a mirror of the component module chemzqm/xlsx.js. It has been modified to work with NPM+Browserify. You can install it using the command npm install npmcomponent/chemzqm-xlsx.js. Please do not open issues or send pull requests against this repo. If you have issues with this repo, report it to npmcomponent.

xlsx.js

converting the data in base64 XLSX files into JavaScript objects - and back

Installation

Install with component(1):

$ component install chemzqm/xlsx.js

Example

Generate xlsx file

var xlsx = require('xlsx.js');
var $ = require('jquery');
var data = [
  ['Person', 'Dogs'],
  ['a', 0],
  ['b', 1],
];
$('#save').on('click', function() {
  var file = {
    worksheets: [[]], // worksheets has one empty worksheet (array)
    creator: 'John Smith', created: new Date('8/16/2012'),
    lastModifiedBy: 'Larry Jones', modified: new Date(),
    activeWorksheet: 0
  }, w = file.worksheets[0]; // cache current worksheet
  w.name = '测试';
  w.data = data;
  window.location = xlsx(file).href();
});

Parse xlsx file

//test read xlsx file
var xhr = new XMLHttpRequest();
xhr.open('GET', 'download.xlsx', true);

xhr.responseType = 'arraybuffer';

xhr.onload = function(e) {
  if (this.status == 200) {
    var uInt8Array = new Uint8Array(this.response);
    var i = uInt8Array.length;
    var binaryString = new Array(i);
    while (i--)
    {
      binaryString[i] = String.fromCharCode(uInt8Array[i]);
    }
    var data = binaryString.join('');

    var base64 = window.btoa(data);
    console.log(xlsx(base64).worksheets[0]);
    //[
    //[[{value: 'Person'}], [{value: 'Dogs'}]],
    //[[{value: 'a'}], [{value: '0'}]],
    //[[{value: 'b'}], [{value: '1'}]]
    //]
  }
};

xhr.send();

License

MIT

About

License:Other


Languages

Language:JavaScript 100.0%