Trabalhando com CSV em JavaScript (Node.js): bibliotecas e ferramentas

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Trabalhando com CSV em JavaScript (Node.js): bibliotecas e exemplos práticos



CSV (Comma-Separated Values) — um dos formatos mais comuns para troca de dados tabulares. No ecossistema Node.js, existem várias bibliotecas maduras que permitem ler, processar e criar arquivos CSV de forma eficiente. Neste artigo, veremos as principais ferramentas, seus recursos e daremos exemplos práticos de código.



Bibliotecas populares para trabalhar com CSV



1. csv-parser — parser de fluxo rápido

Esta biblioteca é o padrão para leitura de CSV em Node.js. Ela opera em modo de fluxo (stream), permitindo processar arquivos de qualquer tamanho sem carregá-los completamente na memória.



Instalação:

npm install csv-parser


Exemplo de leitura de arquivo CSV:

const fs = require('fs');const csv = require('csv-parser');

const results = [];

fs.createReadStream('data.csv') .pipe(csv()) .on('data', (row) => { results.push(row); }) .on('end', () => { console.log('CSV lido com sucesso'); console.log(results.slice(0, 3)); // Primeiros 3 registros });


Principais características:

  • Suporte a delimitadores personalizados (padrão é vírgula)
  • Detecção automática de cabeçalhos a partir da primeira linha
  • Possibilidade de pular linhas vazias
  • Baixo consumo de memória devido ao processamento em fluxo


2. csv-stringify — criação de CSV a partir de objetos

Esta ferramenta faz parte da família csv e é destinada à geração de strings ou fluxos CSV a partir de objetos JavaScript.



Instalação:

npm install csv-stringify


Exemplo de escrita de dados em CSV:

const { stringify } = require('csv-stringify');const fs = require('fs');

const data = [ { name: 'Ana', age: 28, city: 'Moscou' }, { name: 'Ivan', age: 35, city: 'São Petersburgo' }, { name: 'Olga', age: 22, city: 'Kazan' }];

const writableStream = fs.createWriteStream('output.csv');const stringifier = stringify({ header: true });

stringifier.pipe(writableStream);data.forEach(row => stringifier.write(row));stringifier.end();

console.log('Arquivo output.csv criado');


Recursos:

  • Escapamento automático de caracteres especiais (aspas, vírgulas)
  • Configuração do delimitador de colunas
  • Suporte a cabeçalhos personalizados
  • Funcionamento em modos síncrono e assíncrono


3. csv-writer — API simples e intuitiva

Esta biblioteca oferece uma interface mais simples para escrever CSV, especialmente se você estiver trabalhando com pequenos volumes de dados.



Instalação:

npm install csv-writer


Exemplo de escrita:

const createCsvWriter = require('csv-writer').createObjectCsvWriter;

const csvWriter = createCsvWriter({ path: 'users.csv', header: [ { id: 'id', title: 'ID' }, { id: 'name', title: 'Nome' }, { id: 'email', title: 'Email' } ]});

const records = [ { id: 1, name: 'Alexei', email: 'alex@example.com' }, { id: 2, name: 'Maria', email: 'maria@example.com' }];

csvWriter.writeRecords(records) .then(() => console.log('Arquivo CSV criado'));


Cenários avançados de uso



Processamento de arquivos grandes com transformação de dados

Vamos combinar leitura e escrita em um único fluxo para processar dados em tempo real:



const fs = require('fs');const csv = require('csv-parser');const { stringify } = require('csv-stringify');

const readStream = fs.createReadStream('input.csv');const writeStream = fs.createWriteStream('output_transformed.csv');const stringifier = stringify({ h

Recommendations