A manipulação de dados é uma tarefa comum em muitos aplicativos Node.js. Às vezes, você pode se deparar com a necessidade de converter dados de uma planilha XLSX para o formato CSV. Isso pode ser útil ao trabalhar com dados tabulares em diferentes cenários, como importação, exportação ou análise. Neste artigo, vamos explorar como usar os módulos xlsx e csv-parse
para realizar essa tarefa de forma eficiente.
Sobre o módulo csv-parse
O csv-parse
é um módulo Node.js que permite analisar e transformar dados CSV em objetos JavaScript. Ele é flexível e poderoso, tornando-o uma escolha ideal para converter dados de uma planilha XLSX para CSV.
Para começar, certifique-se de ter o Node.js instalado em seu sistema. Você pode instalar o módulo csv-parse
facilmente usando o npm (Node Package Manager):
npm install csv-parse
Criando um Aplicativo de Conversão XLSX para CSV
Vamos criar um aplicativo simples que lê um arquivo XLSX e converte seus dados para um arquivo CSV. Certifique-se de ter um arquivo XLSX para testar. Para este exemplo, suponha que o nome do arquivo seja exemplo.xlsx
.
const fs = require('fs');
const XLSX = require('xlsx');
const parse = require('csv-parse');
const { Transform } = require('stream');
// Ler o arquivo XLSX
const workbook = XLSX.readFile('exemplo.xlsx');
// Selecionar a planilha a ser convertida (use a primeira planilha por padrão)
const sheetName = workbook.SheetNames[0];
const worksheet = workbook.Sheets[sheetName];
// Converter a planilha para um objeto JSON
const jsonData = XLSX.utils.sheet_to_json(worksheet);
// Converter o objeto JSON para CSV
const csvData = XLSX.utils.json_to_csv(jsonData, { header: 1 });
// Criar um stream de leitura para o CSV
const readStream = fs.createReadStream(csvData);
// Criar um stream de análise CSV
const csvParser = parse({ delimiter: ',' });
// Transformação para a saída (opcional)
const transformStream = new Transform({
objectMode: true,
transform(chunk, encoding, callback) {
// Modifique os dados conforme necessário
// Neste exemplo, estamos apenas passando os dados
this.push(chunk);
callback();
},
});
// Criar um stream de gravação para o arquivo CSV de saída
const writeStream = fs.createWriteStream('saida.csv');
// Pipe os streams para executar a conversão
readStream.pipe(csvParser).pipe(transformStream).pipe(writeStream);
// Lidar com eventos de conclusão
writeStream.on('finish', () => {
console.log('Conversão concluída. Os dados foram salvos em "saida.csv".');
});
// Lidar com erros, se houverem
readStream.on('error', (err) => {
console.error('Erro ao ler o arquivo XLSX:', err);
});
writeStream.on('error', (err) => {
console.error('Erro ao escrever o arquivo CSV:', err);
});
Neste exemplo, começamos lendo o arquivo XLSX usando a biblioteca xlsx
. Em seguida, selecionamos a planilha desejada e a convertemos para um objeto JSON usando sheet_to_json
. Em seguida, usamos a função json_to_csv
da mesma biblioteca para converter o JSON em dados CSV.
Depois, criamos uma série de streams para manipular os dados. Um stream de leitura é criado para ler os dados CSV, um stream de análise csv-parse
é usado para analisar os dados e, opcionalmente, um stream de transformação pode ser usado para modificar os dados antes de escrevê-los em um arquivo CSV de saída. Finalmente, usamos um stream de gravação para escrever os dados convertidos no arquivo de saída.
Conclusão
O módulo csv-parse
é uma ferramenta poderosa para converter dados de uma planilha XLSX para o formato CSV em uma aplicação Node.js. Combinado com outras bibliotecas como xlsx
, você pode criar facilmente uma solução eficiente para essa tarefa comum de manipulação de dados. Lembre-se de personalizar o código de acordo com suas necessidades específicas, como manipulação de dados ou lógica de negócios, ao trabalhar com planilhas XLSX para obter os melhores resultados para sua aplicação.
No responses yet