как сделать так, чтобы мой xl преобразовал текст в нижний регистр и обрезал nodejs? - PullRequest
0 голосов
/ 02 мая 2020

Я пытался конвертировать xl в json. Преобразование происходит хорошо, но, хотя я написал код для преобразования в нижний регистр и обрезки, его не происходит. Я получаю вывод, как показано ниже ... но я ожидаю, что вывод все в нижнем регистре и обрезается .. может кто-то помочь

   var exceltojson = require("xlsx-to-json");
          exceltojson(
              {
            input: "test.xlsx",
            output: 'test.txt', 
            sheet: "Sheet1",  

          }, function(err, result) 
          {
            if(err) 
            {
              console.error(err);
            }
          });

вывод:

[
  {
    Email: 'abc@123.com',
    'First Name': 'a',
    'Middle Name': 'b',
    'Last Name': 'c',
    'Address 1': 'd',
    'Address 2': 'lol',
    'Phone No': '123456789'
  },
  {
    Email: 'a@123.com',
    'First Name': 'g',
    'Middle Name': 'h',
    'Last Name': 'i',
    'Address 1': 'j',
    'Address 2': 'lol',
    'Phone No': '458745'
  }
]

Я ожидаю вывод, как

[
  {
    email: 'abc@123.com',
    firstname: 'a',
    middlename: 'b',
    lastname: 'c',
    'address 1': 'd',
    'address 2': 'lol',
    phoneno: '123456789',
  },
  {
    email: 'a@123.com',
    firstname: 'g',
    middlename: 'h',
    lastname: 'i',
    address1: 'j',
    'address 2': 'lol',
    phoneno: '458745',
  },
];

1 Ответ

1 голос
/ 02 мая 2020

В библиотеке нет таких параметров, как trim / tolowercase. Вы должны сделать это вручную.

const exceltojson = require('xlsx-to-json');
const fs = require('fs');
exceltojson({
    input: 'test.xlsx',
    // output: 'test.txt', Don't need output
    sheet: 'Sheet1'
  },
  function(err, result) {
    if (err) {
      console.error(err);
      return;
    }
    const newResult = result.map(obj => {
      const newObj = Object.keys(obj).reduce((acc, key) => {
        const newKey = key.replace(/ /g, '').toLowerCase();
        acc[newKey] = obj[key];
        return acc;
      }, {});
      return newObj;
    });
    fs.writeFileSync('file.txt', JSON.stringify(newResult));
  }
);
...