Skip to content
forked from iyu/excel2json

Can be converted to JSON format any Excel data.

Notifications You must be signed in to change notification settings

atsumo/excel2json

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

34 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Excel2Json

Can be converted to JSON format any Excel data.

example Excel data

A B C D
1 {}
2 _id obj.code obj.value:number
3
4 first one 1
5 second two 2
6
converted to Object
[
    {
        _id: 'first',
        obj: {
            code: 'one',
            value: 1
        }
    }, 
    {
        _id: 'second',
        obj: {
            code: 'two',
            value: 2
        }
    }
]

Installation

npm install excel2json

Usage

Quick start

example sheet.xlsx

A B C D
1 {name: 'Test'}
2 _id obj.code obj.value:number
3
4 first one 1
5 second two 2
6
Sheet1
var excel2json = require('excel2json');

var filename = './sheet.xlsx';
var sheets = [1];
excel2json.parse(filename, sheets, function(err, data) {
    console.log(data);
    // [{
    //    num: 1,                    // sheet number
    //    name: 'Sheet1',            // sheet name
    //    option: {                  // option extend sheet option (ex: A1)
    //        name: 'Test'
    //        attr_line:
    //        data_line:
    //        ref_key: '_id',
    //        format: {
    //            A: { type: null, key: '_id', keys: [ '_id' ] },
    //            B: { type: null, key: 'obj.code', keys: [ 'obj', 'code' ] },
    //            C: { type: 'number', key: 'obj.value', keys: [ 'obj', 'value' ] }
    //        }
    //    },
    //    contents: [
    //        { _id: 'first', obj: { code: 'one', value: 1 } },
    //        { _id: 'second', obj: { code: 'two', value: 2 } }
    //    ]
    // }]

    excel2json.toJson(data, function(err, json) {
        console.log(json);
        // {
        //    Test: {
        //        first: {
        //            _id: 'first',
        //            obj: { code: 'one', value: 1 }
        //        },
        //        second: {
        //            _id: 'second',
        //            obj: { code: 'two', value: 2 }
        //        }
        //    }
        // }
    });
});

Setup

Setup options.

var excel2json = require('excel2json');

excel2json.setup({
    option_cell: 'A1', // Cell with a custom sheet option. It is not yet used now. (default: 'A1'
    attr_line: '2',    // Line with a data attribute. (default: '2'
    data_line: '4',    // Line with a data. (default: '4'
    ref_key: '_id'     // ref key. (default: '_id'
    logger: Logger     // custom logger.
});

Sheet option

sheet option. setting with optionCell (default: 'A1'

  • name
  • type
  • key
  • attr_line
  • data_line
  • ref_key

Attribute

Specify the key name.

Special character

  • # Use when the array.
  • $ Use when the split array.
  • :number or :num Use when the parameters of type Number.
  • :boolean or :bool Use when the parameters of type Boolean.
  • :date Use when the parameters of unix time.
  • :index Use when the array of array.

Example

An example of a complex format.

test.xlsx > test.json

var excel2json = require('excel2json');

excel2json.parse('test.xlsx', [], function(err, sheetDatas) {
    excel2json.toJson(sheetDatas, function(err, result) {
        fs.writeFileSync('test.json', JSON.stringify(result, null, 4));
    });
});

Test

Run npm test and npm run-script jshint

About

Can be converted to JSON format any Excel data.

Resources

Stars

Watchers

Forks

Packages

No packages published

Languages

  • JavaScript 100.0%