Parse excel from http、file or other binary data
JavaScript
Clone or download
weizainiunai
weizainiunai 0.1.4
Latest commit 71fc3ec Aug 11, 2017
Permalink
Failed to load latest commit information.
example doc: update example Aug 11, 2017
lib fix: delete doc, update README.md Aug 11, 2017
test feat: create Aug 9, 2017
.gitignore feat: create Aug 9, 2017
.travis.yml feat: create Aug 9, 2017
CHANGELOG.md 0.1.1 Aug 9, 2017
LICENSE Initial commit Aug 7, 2017
README.md fix: delete doc, update README.md Aug 11, 2017
package-lock.json 0.1.1 Aug 9, 2017
package.json 0.1.4 Aug 11, 2017

README.md

tb-excel

Build Status NPM version

When you get excel binary data from http or a file, you can use this to parse it and get object you want

Installation

npm install tb-excel

Support

Source parse rule limit toObject
binary support support support support
utf8+BOM support support support support
utf16 support support support support
file support no no no

Notice

  • Use exceljs native method:

      const Excel = require('tb-excel').exceljs
  • Use tb-excel extends methods. such as, use xlsx parse methods:

      const Excel = require('tb-excel').xlsxParser

Example

  • Read from url: we want get excel content not only from local files but also from others

    For Example:

    First: Use request to get data from server

      let res = request.get(downloadUrl, { encoding: null }, function(error, response, body) {
          // ……
        })
      }

    Second: We can parse some binary data which get from request:

      'use strict'
      const ExcelParser = require('tb-excel').xlsxParser
    
      const co = require('co')
    
      let data = 'you get from request'
      let rule = ['a', 'b']
      const excel = new ExcelParser(data, rule, 3)
    
      //  you can use gengerator or async, depends yourself
    
      function * parser () {
        let row = yield excel.parse()
        console.log(row) // we can get each rows content from excel
      }
      co(parser())

    Last: Format data according to you rule

     obj = row.toArray()
     console.log(obj)
     // [{
      a: '',
          b: ''
    }]
    

Doc

Create constructor

  const ExcelParser = require('tb-excel').xlsxParser

  const excel = new ExcelParser(data, ['a', 'b'], 3)

Get Arrays from excel

  const excel = new ExcelParser(data)
  let ret = yield excel.parse() // ['a', 18, 'man']

Get Array Obj you want

  const rule = [
    'name',
    'age',
    'sex'
  ]

  const excel = new ExcelParser(data, rule)
  let ret = yield excel.parse()
  excel.toArray() // // { name: 'a', age: 18, sex: 'man' }

Skip rows

  const rule = [
    'name',
    'age',
    'sex'
  ]

  const skip = 1

  const excel = new ExcelParser(data, rule)

  excel.setHeaderline(skip)
  yield excel.parse()
  excel.toArray() // { age: 18, sex: 'man' }

Check if exceed limit

  const rule = [
    'name',
    'age',
    'sex'
  ]

  const excel = new ExcelParser(data, rule, 1)
  yield excel.parse()
  excel.toArray() // { name: 'a', age: 18, sex: 'man' }

  excel.isExccedLimit // true