Trabalhando com Excel em JavaScript (Node.js)
O desenvolvimento web moderno frequentemente requer interação programática com planilhas eletrônicas. Exportação de relatórios, importação de dados de sistemas contábeis, processamento de grandes volumes de informação — tudo isso torna o trabalho com Excel em Node.js uma tarefa essencial. Neste artigo, vamos explorar as três bibliotecas mais populares para trabalhar com o formato XLSX: xlsx, exceljs e excel4node. Você aprenderá como instalar cada uma delas, criar, editar e ler arquivos Excel.
Biblioteca xlsx (SheetJS)
xlsx é a biblioteca mais popular e leve para trabalhar com planilhas em Node.js. Ela suporta não apenas XLSX, mas também XLS, CSV, ODS e outros formatos. A principal vantagem é a simplicidade da API e a alta velocidade de processamento.
Instalação:
npm install xlsxExemplo: criando e escrevendo um arquivo Excel
const XLSX = require('xlsx');
// Criando uma planilha com dadosconst data = [ { Nome: 'Ana', Idade: 28, Cidade: 'Moscou' }, { Nome: 'Ivan', Idade: 35, Cidade: 'São Petersburgo' }, { Nome: 'Olga', Idade: 22, Cidade: 'Kazan' }];
const worksheet = XLSX.utils.json_to_sheet(data);const workbook = XLSX.utils.book_new();XLSX.utils.book_append_sheet(workbook, worksheet, 'Funcionários');
// Salvando o arquivoXLSX.writeFile(workbook, 'employees.xlsx');console.log('Arquivo employees.xlsx criado!');Exemplo: lendo um arquivo existente
const workbook = XLSX.readFile('employees.xlsx');const sheetName = workbook.SheetNames[0];const worksheet = workbook.Sheets[sheetName];const jsonData = XLSX.utils.sheet_to_json(worksheet);
console.log('Dados do arquivo:', jsonData);Vantagens:
- Tamanho mínimo (cerca de 50 KB compactado)
- Suporte a múltiplos formatos (XLSX, XLS, CSV, ODS)
- API simples para conversão JSON ↔ planilha
Desvantagens:
- Recursos limitados de formatação (estilos, fontes, cores)
- Dificuldades com células mescladas e fórmulas complexas
Biblioteca exceljs
exceljs é uma biblioteca avançada para trabalhar com arquivos XLSX. Ela oferece controle total sobre a formatação: você pode gerenciar fontes, cores, bordas, células mescladas, formatação condicional e até adicionar imagens.
Instalação:
npm install exceljsExemplo: criando um relatório formatado
const ExcelJS = require('exceljs');
async function createReport() { const workbook = new ExcelJS.Workbook(); const worksheet = workbook.addWorksheet('Relatório');
// Definindo colunas worksheet.columns = [ { header: 'Produto', key: 'product', width: 20 }, { header: 'Quantidade', key: 'quantity', width: 15 }, { header: 'Preço', key: 'price', width: 15 } ];
// Adicionando dados worksheet.addRow({ product: 'Notebook', quantity: 10, price: 75000 }); worksheet.addRow({ product: 'Mouse', quantity: 50, price: 1500 });
// Formatação do cabeçalho const headerRow = worksheet.getRow(1); headerRow.font = { bold: true, color: { argb: 'FFFFFFFF' } }; headerRow.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: 'FF4472C4' } };
// Formatação das células de preço const priceColumn = worksheet.getColumn(3); priceColumn.numFmt = '#,##0.00';
// Salvando await workbook.xlsx.writeFile('report.xlsx'); console.log('Relatório criado com formatação!');}
createReport();Exemplo: lendo e modificando um arquivo
const workbook = new ExcelJS.Workbook();await workbook.xlsx.readFile('report.xlsx');const worksheet = w Também na biblioteca
Trabalhando com S3 e armazenamentos em nuvem em Rust: biblioteca aws-sdk-s3
ndarray para Rust: guia completo com exemplos práticos
Biblioteca Padrão JavaScript (Node.js): Visão Geral Completa