Часто нужно импортировать данные из EXCEL в SimpleOne
С целью решения данной проблемы представляю конвертер Excel в JSON
Инструкция
Универсальный конвертер Excel/CSV в JSON (Node.js)
Простая программа для преобразования данных из Excel (.xlsx) или CSV (.csv) файлов в JavaScript-массив объектов в формате JSON.
Быстрый старт
- Создайте папку проекта и установите зависимости:
mkdir excel-to-json
cd excel-to-json
npm init -y
npm install xlsx csv-parser
- Создайте файл
convert.js
и скопируйте этот код:
const xlsx = require('xlsx');
const fs = require('fs');
const csv = require('csv-parser');
const inputFile = './input'; // Без расширения
function convertXlsx(filePath) {
const workbook = xlsx.readFile(filePath);
const sheetName = workbook.SheetNames[0];
const sheet = workbook.Sheets[sheetName];
return xlsx.utils.sheet_to_json(sheet, { defval: "" });
}
function convertCsv(filePath) {
return new Promise((resolve) => {
const results = [];
fs.createReadStream(filePath)
.pipe(csv())
.on('data', (data) => results.push(data))
.on('end', () => resolve(results));
});
}
async function main() {
let data;
if (fs.existsSync(`${inputFile}.xlsx`)) {
console.log('Обнаружен XLSX файл, конвертируем...');
data = convertXlsx(`${inputFile}.xlsx`);
}
else if (fs.existsSync(`${inputFile}.csv`)) {
console.log('Обнаружен CSV файл, конвертируем...');
data = await convertCsv(`${inputFile}.csv`);
}
else {
console.log('❌ Ошибка: Не найден файл input.xlsx или input.csv');
return;
}
const jsOutput = `const data = ${JSON.stringify(data, null, 2)};\n\nmodule.exports = data;`;
fs.writeFileSync('output.js', jsOutput);
console.log(`✅ Готово! Конвертировано ${data.length} записей в output.js`);
}
main();
-
Поместите ваш файл данных в папку проекта и назовите его:
input.xlsx
для Excel-файлов- ИЛИ
input.csv
для CSV-файлов
-
Запустите конвертацию:
node convert.js
- Получите результат в файле
output.js
Особенности
- Автоматически определяет тип файла (XLSX или CSV)
- Поддерживает оба формата без изменения кода
- Простое использование - только один входной файл
- Чистый вывод в формате JavaScript модуля
Пример CSV файла (input.csv
):
id,name,department
1,Иван,IT
2,Ольга,Маркетинг
Пример результата (output.js
):
const data = [
{
"id": "1",
"name": "Иван",
"department": "IT"
},
{
"id": "2",
"name": "Ольга",
"department": "Маркетинг"
}
];
module.exports = data;