Trabalhando com Excel em JavaScript (Node.js): visão geral das bibliotecas e exemplos de código
Apesar de o PythonLib ser dedicado à linguagem Python, o trabalho com planilhas Excel também é frequentemente necessário no ambiente Node.js. JavaScript (especialmente no lado do servidor) é ativamente usado para automação de relatórios, importação de dados de sistemas CRM e geração de listas de preços. Neste artigo, vamos analisar as três principais bibliotecas para trabalhar com Excel em Node.js, suas funcionalidades e fornecer exemplos práticos de código.
Por que Node.js para Excel?
Node.js é a escolha ideal para microsserviços e scripts que processam grandes volumes de dados. As bibliotecas para Excel permitem:
- Ler arquivos
.xlsxe.xlsexistentes. - Criar novas planilhas do zero.
- Formatar células (cores, fontes, bordas).
- Trabalhar com fórmulas, estilos e células mescladas.
- Exportar dados para CSV.
Top 3 bibliotecas para Excel em Node.js
1. ExcelJS — a mais funcional
ExcelJS é uma biblioteca poderosa com suporte completo ao formato xlsx. Ela permite trabalhar com streams, o que é crítico para arquivos grandes. Suporta estilos, formatação condicional, gráficos e proteção de planilhas.
Instalação:
npm install exceljsExemplo 1: Lendo um arquivo existente
const ExcelJS = require('exceljs');
async function readExcel(filePath) { const workbook = new ExcelJS.Workbook(); await workbook.xlsx.readFile(filePath); const worksheet = workbook.getWorksheet(1); // Primeira planilha worksheet.eachRow((row, rowNumber) => { console.log(`Linha ${rowNumber}: ${row.values.join(', ')}`); });}
readExcel('data.xlsx');Exemplo 2: Criando um arquivo com formatação
const ExcelJS = require('exceljs');
async function createStyledExcel() { const workbook = new ExcelJS.Workbook(); const sheet = workbook.addWorksheet('Relatório'); // Cabeçalho com fonte em negrito e preenchimento const headerRow = sheet.getRow(1); headerRow.values = ['Nome', 'Idade', 'Cidade']; headerRow.font = { bold: true, size: 12 }; headerRow.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: 'FFFF00' } // Fundo amarelo }; // Dados sheet.addRow(['Ana', 28, 'Moscou']); sheet.addRow(['Ivan', 35, 'São Petersburgo']); // Largura das colunas sheet.getColumn(1).width = 15; sheet.getColumn(2).width = 10; await workbook.xlsx.writeFile('output.xlsx'); console.log('Arquivo criado!');}
createStyledExcel();2. xlsx (SheetJS) — leve e rápido
A biblioteca xlsx (também conhecida como SheetJS) é o "cavalo de batalha" para operações simples. Ela não suporta formatação avançada, mas lida muito bem com leitura/escrita de dados. Suporta os formatos xlsx, xls, csv, ods.
Instalação:
npm install xlsxExemplo 3: Lendo e convertendo para JSON
const XLSX = require('xlsx');
function readToJSON(filePath) { const workbook = XLSX.readFile(filePath); const sheetName = workbook.SheetNames[0]; const sheet = workbook.Sheets[sheetName]; // Converte a planilha em um array de objetos const data = XLSX.utils.sheet_to_json(sheet); console.log(data);}
readToJSON('data.xlsx');Exemplo 4: Escrevendo um array de dados
const XLSX = require('xlsx');
function writeFromArray() { const data = [ { Name: 'Olga', Age: 30, City: 'Kazan' }, { Name: 'Pedro', Age: 42, City: 'Ecaterimburgo' } ]; const worksheet = XLSX.utils.json_to_sheet(data); const workbook = XLSX.utils.book_new(); XLSX.utils