Нужна программа для сортировки данных и перенос из txt в Excel, на JS - вопрос №5087135
Есть исходники — файлы txt с набором данных, а именно — в уже отсортированном АЛФАВИТНОМ порядке идут строки с фамилиями (все на англ языке) и неким описанием.
Нужно перекинуть все в EXCEL, объединив, где есть перенос информации, строки — чтобы вся информация для каждого БЫЛА НА ОДНОЙ СТРОКЕ, а не на двух, трех и т.д. — как в исходнике.
Желательно сделать на JS.
Пример.
Исходник в txt:
Carlson, Prof. A(nton) J(ullus),
University of Chicago, Chicago,
111.
Carlson, Dr. Carl S(lg'urd),
University of Pennsylvania,
10,
Результат переносимый в excel:
Carlson, Prof. A(nton) J(ullus), University of Chicago, Chicago, 111.
Carlson, Dr. Carl S(lg'urd), University of Pennsylvania, 10,
Нужно: нажал кнопку — загрузил исходники, получил файл (файлы) excel с сортировкой.
И ЕЩЕ — т.к. мне это надо понимать, я Вас попрошу потом рассказать, как что работает.
Пишите или звоните на вотсапп — 7 951 699 7226
// Читаем данные из txt файла
const fileContent = fs.readFileSync('input.txt', 'utf-8');
// Разделяем данные на строки
const rows = fileContent.split('\n');
// Создаем массив для хранения результатов
const results = [];
// Обрабатываем каждую строку
for (let i = 0; i < rows.length; i++) {
const row = rows[i];
// Если строка не пустая
if (row.trim() !== '') {
// Добавляем текущую строку к предыдущей строке, если она начинается с пробела
if (i > 0 && rows[i — 1].endsWith(' ') && !row.startsWith(' ')) {
results[results.length — 1].description += row.trim();
} else {
// Создаем новую запись в результате
const [name, description] = row.split(',');
results.push({
name: name.trim(),
description: description.trim()
});
}
}
}
// Сортируем результат по имени
results.sort((a, b) => a.name.localeCompare(b.name));
csvWriterInstance.writeRecords(results).then(() => {
console.log('The CSV file was written successfully!');
});
Как это работает:
Считываем данные из файла input.txt.
Разделяем данные на строки.
Создаем массив для хранения результатов.
Обрабатываем каждую строку. Если строка не пустая, то:
Если строка начинается с пробела, добавляем ее к предыдущей строке.
Иначе, создаем новую запись в результате с именем и описанием.
Сортируем результат по имени.
Записываем результат в файл output.csv в формате CSV с помощью библиотеки csv-writer.
Чтобы использовать этот код, нужно установить библиотеки fs и csv-writer с помощью npm. Для этого необходимо выполнить следующие команды в командной строке:
npm install fs
npm install csv-writer
После этого можно запустить скрипт с помощью команды:
node script.js
Где script.js — это название файла с кодом. Результат будет записан в файл output.csv.
Добрый день. Меня заинтересовал ваш ответ "Для выполнения данной задачи можно использовать Node.js и библиотеку для работы с файлами в формате ..." на вопрос http://www.liveexpert.org/topic/view/5087135-nuzhna-programma-dlya-sortirovki-dannih-i-perenos-iz-txt-v-excel-na-js. Можно с вами обсудить этот ответ?