Привет всем, поэтому после того, как я прочитал несколько статей в Интернете о синтаксическом анализе CSV в Node.js и после небольшого исследования, я решил поделиться тем, что я нашел, и, надеюсь, просветить будущих читателей.
Начнем с чтения CSV-файла и его анализа.
Установите xslx с помощью следующей команды: npm install xlsx
xslx - отличный инструмент, который поддерживает следующие форматы: https://www.npmjs.com/package/xlsx#supported-output-formats
, что потрясающе и охватывает большую часть работы, которая будет необходимо при синтаксическом анализе CSV или аналогичных форматов.
Используя следующий набор данных: https://raw.githubusercontent.com/michaellomuscio/Exploring-Data/master/PokemonData.csv
Я разделил это на 2 раздела
- чтение CSV
- написание CSV
Откройте текстовый редактор и вперед.
const xlsx = require('xlsx') const fileContent = xlsx.readFile('./pokemon.csv') let myCsvData = [] for (const sheetName of fileContent.SheetNames) { let sheetContent = xlsx.utils.sheet_to_json(fileContent.Sheets[sheetName]) myCsvData = [...myCsvData, ...sheetContent] }
пошаговое руководство по коду:
- импорт xslx
- чтение файла с помощью функции readFile
- цикл по листам в книге (объект, который представляет наш CSV)
- добавление данных в наш массив
Теперь, когда мы знаем, как читать файл CSV, давайте попробуем его написать.
Массив объектов, которые я хочу экспортировать как CSV
const pokemonData =[{ pokemon_name: "Raichu", type1: "electric", },{ pokemon_name: "Skarmory", type1: "steel", type2: "flying" }]
Теперь нам нужно создать книгу, преобразовать данные в лист и записать файл.
const myBook = xlsx.utils.book_new() const dataAsSheet = xlsx.utils.json_to_sheet(pokemonData) xlsx.utils.book_append_sheet(myBook,dataAsSheet, "pokeSheet") xlsx.writeFile(myBook,"my-custom-pokemon-data.csv")
пошаговое руководство по коду:
- создание книги
- преобразование наших данных в лист
- добавление листа в книгу
- запись файла
writeFile
автоматически угадывает формат выходного файла на основе расширения файла, если bookType
не указан. Он выберет первый формат в вышеупомянутой таблице, соответствующий расширению.
Спасибо за чтение, если вы обнаружите какие-либо ошибки, прокомментируйте их ниже, и я исправлю их.