Suresh Shetiar
Suresh Shetiar

Reputation: 157

converting excel(.xlsx) file to JSON

I have excel sheet called sampledata.xlsx which i converted into json and console.log to print this data.

server.js


var xlsx2json = require('xlsx2json')


xlsx2json(
    'sampledata.xlsx',
{
    dataStartingRow: 2,
    mapping: {
        'name': 'B',//name
        'sku': 'C',//unit price            //sku
        'quantity': 'D',//quantity
        
    }
}).then(jsonArray => { 
    // [
    //     {"col_1": "Barton LCC", "col_2": "30", "col_3": "86.69"}
    // ]
    
//console.log(jsonArray);
});

with the help of this doc. What i want to do here is,in my sampledata.xlsx file i have more data like flat,address,price,etc here i already don't know which fields are present in my excel sheet but i want all that to be console.log.How could i do this is there any way to do this.

Upvotes: 1

Views: 9611

Answers (2)

Suresh Shetiar
Suresh Shetiar

Reputation: 157

import xlsx2json from 'xlsx2json';

        OR

const xlsx2json = require('xlsx2json');

const excel2json = [
(req, res, next) => {
xlsx2json(req.body.file.path)
  .then(result => result[0])
  .reduce((object, item, index) => {
     if (index === 0) {
      object.mapper = item;  // eslint-disable-line no-param-reassign
      return object;
     }
  const data = {};
  Object.keys(item).forEach((key) => {
    data[object.mapper[key]] = item[key];
  });
  object.data.push(data);
    return object;
 }, { mapper: {}, data: [] })
   .then(excel => console.log(excel)) // this gives json as output
   .catch(err => next(err));
 },
];

Upvotes: 2

PRADEEP Kumar
PRADEEP Kumar

Reputation: 243

npm install xlsx-to-json-lc --save
npm install xls-to-json-lc --save

var exceltojson = require("xls-to-json-lc");
  exceltojson({
    input: "pass the input excel file here (.xls format)"
    output: "if you want output to be stored in a file"
    sheet: "sheetname",  // specific sheetname inside excel file (if you have multiple sheets)
    lowerCaseHeaders:true //to convert all excel headers to lowr case in json
  }, function(err, result) {
    if(err) {
      console.error(err);
    } else {
      console.log(result);
      //result will contain the overted json data
    }
  });

Upvotes: 1

Related Questions