
Привет всем, поэтому после того, как я прочитал несколько статей в Интернете о синтаксическом анализе 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 не указан. Он выберет первый формат в вышеупомянутой таблице, соответствующий расширению.
Спасибо за чтение, если вы обнаружите какие-либо ошибки, прокомментируйте их ниже, и я исправлю их.