Trabalhando com Excel em TypeScript: bibliotecas, exemplos e ferramentas
TypeScript é uma linguagem poderosa para desenvolvimento de aplicações web, e frequentemente surge a necessidade de trabalhar programaticamente com arquivos Excel: ler relatórios, gerar planilhas, exportar dados. Neste artigo, vamos explorar as três principais bibliotecas para trabalhar com Excel em TypeScript, suas capacidades e fornecer exemplos práticos.
1. Principais bibliotecas para trabalhar com Excel em TypeScript
Existem várias soluções populares, cada uma com seus pontos fortes:
- ExcelJS — a biblioteca mais popular para ler, escrever e estilizar arquivos Excel. Suporta .xlsx, .xlsm, .csv, além de trabalhar com fórmulas, formatação condicional e imagens.
- xlsx (SheetJS) — uma biblioteca leve e rápida para operações básicas: leitura e escrita de dados tabulares. Ideal para tarefas simples.
- excel4node — biblioteca para criar arquivos Excel com foco em desempenho e suporte a estilos.
2. Instalação e configuração
Para instalar a biblioteca escolhida, use o npm. Vamos instalar o ExcelJS e o xlsx:
npm install exceljsnpm install xlsxPara TypeScript, instale também os tipos (para xlsx eles já estão embutidos):
npm install @types/exceljs --save-devnpm install @types/node --save-dev3. Trabalhando com Excel via ExcelJS
3.1 Criando e escrevendo um arquivo
Vamos criar um novo arquivo Excel com cabeçalhos e dados:
import * as ExcelJS from 'exceljs';
async function createExcel() { const workbook = new ExcelJS.Workbook(); const worksheet = workbook.addWorksheet('Dados');
// Definindo colunas worksheet.columns = [ { header: 'Nome', key: 'name', width: 25 }, { header: 'Idade', key: 'age', width: 10 }, { header: 'Cidade', key: 'city', width: 20 } ];
// Adicionando linhas worksheet.addRow({ name: 'Ana', age: 28, city: 'Moscou' }); worksheet.addRow({ name: 'Ivan', age: 35, city: 'São Petersburgo' }); worksheet.addRow({ name: 'Olga', age: 22, city: 'Kazan' });
// Estilizando cabeçalhos const headerRow = worksheet.getRow(1); headerRow.font = { bold: true, color: { argb: 'FFFFFFFF' } }; headerRow.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: 'FF4472C4' } };
// Salvando o arquivo await workbook.xlsx.writeFile('exemplo.xlsx'); console.log('Arquivo criado');}
createExcel();3.2 Lendo um arquivo existente
Vamos ler os dados do arquivo criado anteriormente:
async function readExcel() { const workbook = new ExcelJS.Workbook(); await workbook.xlsx.readFile('exemplo.xlsx');
const worksheet = workbook.getWorksheet('Dados'); if (!worksheet) return;
worksheet.eachRow((row, rowNumber) => { const rowData = row.values as any[]; console.log(`Linha ${rowNumber}: ${rowData.join(', ')}`); });}
readExcel();4. Trabalhando com Excel via xlsx (SheetJS)
4.1 Lendo dados
A biblioteca xlsx permite ler rapidamente os dados de um arquivo:
import * as XLSX from 'xlsx';
function readXlsxFile(filePath: string) { const workbook = XLSX.readFile(filePath); const sheetName = workbook.SheetNames[0]; const worksheet = workbook.Sheets[sheetName]; const data = XLSX.utils.sheet_to_json(worksheet); console.log(data);}
readXlsxFile('exemplo.xlsx');4.2 Criando e escrevendo
Vamos criar um arquivo Excel simples a partir de um array de objetos:
function createXlsx() { const data = [ { Name: 'Ana', Age: 28, City: 'Moscou' }, { Name: 'Ivan', Age: 35, City: 'SP' } ];
const worksheet = XLSX.utils.json_to_sheet(data); const workbook = XLSX.utils.book_new(); XLSX.utils.book_append_sheet(workbook, wor Também na biblioteca
Métricas Prometheus em C# (.NET): integração e configuração
Trabalhando com Excel em Kotlin: bibliotecas Apache POI e Apache POI para Kotlin
Parsing de HTML em C++: visão geral das bibliotecas e exemplos de código
Registro em Rust: visão geral das melhores bibliotecas e ferramentas