Socket
Socket
Sign inDemoInstall

xlsx-hero

Package Overview
Dependencies
17
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Install Socket

Detect and block malicious and high-risk dependencies

Install

    xlsx-hero

A light weight xlsx reader || builder in nodejs


Version published
Weekly downloads
1
decreased by-80%
Maintainers
1
Install size
18.6 MB
Created
Weekly downloads
 

Readme

Source

xlsx-hero

🎃 XLSX import & export helper base on object schema in nodejs

Install

npm i xlsx-hero --save

Usage

Build Hero

  import { XlsxHero } from '../utils/xlsxHero'

  const Schema = {
    name: 'my xlsx',
    maxlength: 1000,
    first: false,
    allowEmpty: true,
    columns: [{
      title: 'name',
      key: 'userName',
      rules: [{
        required: true
      }]
    }, {
      title: 'email',
      key: 'userEmail',
      rules: [{
        validator (rule, value, callback, source, options) {
          // test if email address already exists in a database
          // and add a validation error to the errors array if it does
          callback(errors)
        }
      }]
    }]
  }

  // construct xlsxHero base on schema
  const importHero = new XlsxHero(schema)

Schema constructor

schema property
keydescriptiontypedefault
namename of your sweet xslx (you may use it for export & template generate)string
maxlengthxlsx will throw an error if file length larger than maxlengthnumber
firstthrow an error when met first error during validationbooleanfalse
allowEmptyallow empty row in your file, otherwise xlsx hero validator will throw an error when validate empty rowbooleanfalse
rowAppendadditional object that needs inject to each rowobject
needBackFill在schema中指定需要backfill才会调用每一个单元格的backfill方法booleanfalse
columnseach row's schemaRow[]

Row: Cell[], Each row was an Array of Cell set

Each Cell property
keydescriptiontype
titletitle forstring
keykeystring
rulesvalidate rulesobject[]
backfillbackfill object to this row, base on current cell valueFunction(row)
renderrender funtionFunction(value: CurrentCellValue, row: CurrentRow)

Api

  • buildTemplate

Generate template sheet base on schema

  const tempalte = importHero.buildTemplate('my template')
  • validate

Validate import file

  const { data, detail } = await importHero.validate(file)
detail properties
keydescription
validateCostvalidate whole xlsx file cost time
parseCostparse whole xlsx file cost time
  • generateSheet

Generate worksheet buffer

  const buffer = exportHero.generateSheet(result)

Generate work sheet array data

  const opts = { raw: true }
  const data = exportHero.generateSheet(result, opts)

Try it out

cd example
npm i
node index.js

Then open http://localhost:3008/

(For server: Make sure you have node v7.6.0 or higher installed for ES2015 and async function support)

(For client: Make sure your browser support Fetch & Promise && DO NOT USE IE8 OR BELOW)

Enjoy :)

Keywords

FAQs

Last updated on 24 Dec 2018

Did you know?

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc