#javascript #json #excel #parsing #csvtojson
Вопрос:
У меня есть лист excel со столбцом, содержащим данные в формате json. Я хочу преобразовать этот лист в json. Два других столбца преобразуются в json, но этот конкретный столбец нельзя рассматривать как объект json, и вместо этого он преобразуется в строку. JSON.parse() не работает с этой строкой и выдает синтаксическую ошибку. Вот то, что я пробовал:
- Преобразуйте лист excel в json с помощью пакета xlsx
- Преобразуйте excel в csv в json с помощью пакета csvtojson
Ни то, ни другое не помогло мне успешно преобразовать последний столбец в объект json Ниже приведен мой код:
let xlsx = require("xlsx")
const csvtojson = require("csvtojson")
let path = require("path")
let fs = require("fs");
const inputFilePath = path.join(__dirname, './mastersheet.xlsx');
let File = xlsx.readFile(inputFilePath);
let content = xlsx.utils.sheet_to_csv(File.Sheets['Sheet6']);
fs.writeFile('./mastersheet.csv', content, (err) => {
if (err) console.log(err)
})
csvtojson()
.fromFile('./mastersheet.csv')
.then((jsonObj) => {
console.log(jsonObj);
fs.writeFileSync("mastersheet.json", JSON.stringify(validJsonData), 'utf8', (err) => {
if (err) console.log(err);
})
});
Любая помощь будет признательна.
Ответ №1:
вы можете использовать convert-excel-в-json, и вы преобразуете excel в json следующим образом:
const excelToJson = require('convert-excel-to-json');
const fs = require('fs');
const result = excelToJson({
source: fs.readFileSync('exlTest.xlsx'),
header:{
rows: 1
}
});
console.log('result :', result);
Комментарии:
1. Преобразование его в json не является проблемой. Преобразование данных excel, которые уже находятся в формате json, вызывает проблемы, поскольку они не могут быть проанализированы как json в javascript