Trabalhando com Excel em JavaScript (Node.js): visão geral das bibliotecas e exemplos práticos
Apesar de o PythonLib ser dedicado à linguagem Python, no desenvolvimento web moderno surge frequentemente a necessidade de processar planilhas Excel no lado do servidor usando Node.js. JavaScript (Node.js) é um ambiente poderoso para criar aplicações server-side, e trabalhar com planilhas eletrônicas é uma das tarefas requisitadas. Neste artigo, veremos três bibliotecas principais para trabalhar com Excel em Node.js: node-xlsx (xlsx), exceljs e excel4node, além de apresentar exemplos de uso.
Por que trabalhar com Excel em Node.js?
No lado do servidor, frequentemente é necessário:
- Gerar relatórios no formato XLSX para download pelos usuários;
- Importar dados de arquivos Excel carregados para o banco de dados;
- Processar automaticamente listas de preços, tabelas de controle e outros documentos;
- Criar relatórios complexos com formatação, gráficos e estilos.
O Node.js lida muito bem com essas tarefas, oferecendo várias bibliotecas especializadas.
Biblioteca xlsx (SheetJS)
SheetJS (pacote xlsx) é a biblioteca mais popular e madura para trabalhar com Excel em JavaScript. Ela suporta leitura e escrita de vários formatos: XLSX, XLS, CSV, ODS e outros. A principal vantagem é a simplicidade e velocidade.
Instalação
npm install xlsxExemplo: criar e salvar um arquivo Excel
const XLSX = require('xlsx');
// Cria uma nova pasta de trabalhoconst workbook = XLSX.utils.book_new();
// Dados para a tabelaconst data = [ ['Nome', 'Idade', 'Cidade'], ['Ana', 28, 'Moscou'], ['Ivan', 35, 'São Petersburgo'], ['Maria', 22, 'Kazan']];
// Converte o array em uma planilhaconst worksheet = XLSX.utils.aoa_to_sheet(data);
// Adiciona a planilha à pasta de trabalhoXLSX.utils.book_append_sheet(workbook, worksheet, 'Usuários');
// Escreve o arquivo no discoXLSX.writeFile(workbook, 'users.xlsx');console.log('Arquivo users.xlsx criado!');Exemplo: ler um arquivo existente
const XLSX = require('xlsx');
const workbook = XLSX.readFile('users.xlsx');const sheetName = workbook.SheetNames[0]; // Pega a primeira planilhaconst worksheet = workbook.Sheets[sheetName];
// Converte a planilha em um array de objetosconst jsonData = XLSX.utils.sheet_to_json(worksheet);console.log(jsonData);Biblioteca exceljs
ExcelJS é uma biblioteca mais moderna e funcional. Ela oferece recursos avançados de formatação: estilos de célula, fontes, cores, mesclagem de células, formatação condicional, trabalho com imagens e gráficos. Suporta streams para trabalhar com arquivos grandes.
Instalação
npm install exceljsExemplo: criar um relatório formatado
const ExcelJS = require('exceljs');
async function createReport() { const workbook = new ExcelJS.Workbook(); const sheet = workbook.addWorksheet('Relatório');
// Define as colunas sheet.columns = [ { header: 'Produto', key: 'product', width: 30 }, { header: 'Preço', key: 'price', width: 15 }, { header: 'Quantidade', key: 'quantity', width: 15 } ];
// Adiciona dados sheet.addRow({ product: 'Notebook', price: 75000, quantity: 10 }); sheet.addRow({ product: 'Mouse', price: 1500, quantity: 50 }); sheet.addRow({ product: 'Teclado', price: 3500, quantity: 30 });
// Formata o cabeçalho const headerRow = sheet.getRow(1); headerRow.font = { bold: true, size: 12, color: { argb: 'FFFFFFFF' } }; headerRow.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: 'FF4472C4' } };
// Alinhamento headerRow.alignment = { vertical: 'middle', horizontal: 'ce Também na biblioteca
Aprendizado de Máquina em Java: visão geral das principais bibliotecas
ORM para C++: comparação e exemplos de uso (ODB, SOCI, SQLiteCpp)
nodemailer
Trabalhando com CSV em Rust: biblioteca csv e processamento de dados
Trabalhando com imagens em TypeScript: bibliotecas, ferramentas e exemplos de código