2.0.1 • Published 6 years ago

simple-export-excel v2.0.1

Weekly downloads
4
License
ISC
Repository
github
Last release
6 years ago

Simple-export-excel

Parse the json oject to excel

Install

npm install simple-export-excel --save

Usage

    .exportXls(headers, data, sheetsname)

You have to specify headers and data, and pass them to .exortXls

var header = [
    ['item','price']
]

var data = [
    [
        {
            'item':'apple',
            'price':1000
        },
        {
            'item':'banana',
            'price':1000
        }
    ],//sheet 1
]

For example

var xls = require('simple-export-excel');
var headers = 
[
    [
        "item", "price"
    ],
    [
        "name", "id"
    ]
]

var data = [
                [
                    {
                        'item':'apple',
                        'price':1000
                    },
                    {
                        'item':'banana',
                        'price':1000
                    }
                ],//sheet 1
                [
                    {
                        'name':'andy',
                        'id':112
                    },
                    {
                        'name':'bob',
                        'id':90,
                    }
                ]//sheet 2
            ]

var ret =  xls.exportXls( headers, data);
var fs = require('fs');
fs.writeFileSync('./test.xlsx',ret,'binary')

Output:

(sheet_0)

itemprice
apple1000
banana1000

(sheet_1)

nameid
andy112
bob90

Note: output will be binary data. You can use fs.writeFile to write these into a file.

var fs = require('fs');
fs.writeFileSync('./test.xlsx',ret,'binary')

Notice

case 1.

In the following case: because we don't specify 'year' in the headers, simple-export-excel will ignore the 'year' during the parsing process.

var xls = require('simple-export-excel');
var headers = 
[
    [
        "name", "id"
    ],
 
]

var data = [

                [
                    {
                        'name':'andy',
                        'id':112
                    },
                    {
                        'name':'bob',
                        'id':90,
                        'year':'2017',
                    }
                ]//sheet 1
            ]

var ret =  xls.exportXls( headers, data);
var fs = require('fs');
fs.writeFileSync('./test.xlsx',ret,'binary')

the Output will be

nameid
andy112
bob90

case 2.

As you can see, the name property of first object stores a array 'andy', 'andy lai'.

var data = [

                [
                    {
                        'name':['andy','andy lai'],
                        'id':112
                    },
                    {
                        'name':'bob',
                        'id':90,
                    }
                ]//sheet 1
            ]

In this case, simple-export-excel will combine all element in the array with ';'.

The output will be

nameid
andy; andy lai112
bob90

case 3. Nested JSON

var xls = require('simple-export-excel');
const header = 
    [
        [   //header of sheet 1 
            'item',
            'price',
            'dealership.us[0].name',
            'dealership.us[0].address',
            'dealership.us[0].prop',
            'dealership.us[1].name',
            'dealership.us[1].address',
            'dealership.us[1].prop'
        ] 
    ]
var data = 
    {
                
        'item': 'apple',
        'price': 1000,
        'dealership': {
            'us': [
                    {
                        name: 'andy',
                        address: 'street 1, no 38',
                        prop: ['car', 'house']
                    },
                    {
                        name: 'bob',
                        address: 'stree 2, no 113',
                        prop: ['stock', 'car']
                    }
            ]
        }
    }

var ret = xls.exportXls(header, data);
var fs = require('fs');
fs.writeFileSync('./test.xlsx',ret,'binary')

The output will be like:

itempricedealership.us0.namedealership.us0.addressdealership.us0.propdealership.us1.namedealership.us1.addressdealership.us1.prop
apple1000andystreet 1, no 38car;housebobstree 2, no 113stock;car

Release Note:

2.0.1

The white spaces in the sheet name will be replaced by '_'

2.0.1

6 years ago

2.0.0

6 years ago

1.0.3

6 years ago

1.0.2

6 years ago

1.0.1

6 years ago

1.0.0

6 years ago