Trabalhando com Excel em TypeScript: bibliotecas, ferramentas e exemplos de código

Treinador Online de Python para Iniciantes

Aprenda Python facilmente sem sobrecarga teórica. Resolva tarefas práticas com verificação automática e escreva código diretamente no navegador.

Start Course

Trabalhando com Excel em TypeScript: visão geral completa das ferramentas



TypeScript, como uma extensão estaticamente tipada sobre JavaScript, oferece excelentes possibilidades para a criação de aplicações corporativas complexas. Uma das tarefas frequentes é trabalhar com arquivos Microsoft Excel — ler, criar e editar tabelas. Neste artigo, vamos analisar as melhores bibliotecas para trabalhar com Excel em TypeScript, suas características e fornecer exemplos práticos de código.



Bibliotecas populares para trabalhar com Excel



Atualmente, existem várias soluções maduras. Aqui estão as principais:



  • ExcelJS — a biblioteca mais poderosa com suporte a estilos, fórmulas, gráficos e processamento em fluxo.
  • xlsx (SheetJS) — uma biblioteca leve e rápida, ideal para operações simples de leitura/escrita.
  • node-excel-export — desatualizada, mas ainda usada em projetos legados.
  • Excel4Node — especializada na criação de relatórios complexos com formatação.


Para a maioria dos projetos modernos em TypeScript, recomendamos ExcelJS e xlsx (SheetJS). Vamos analisá-los em detalhes.



Instalação e configuração



A instalação de ambas as bibliotecas é feita via npm:



npm install exceljsnpm install xlsx


Para TypeScript, é necessário instalar os tipos (se não vierem incluídos):



npm install --save-dev @types/node


Observe: o ExcelJS vem com tipos embutidos, enquanto para o xlsx os tipos precisam ser instalados separadamente:



npm install --save-dev @types/xlsx


Exemplo 1: Criando um arquivo Excel com ExcelJS



Vamos criar uma tabela simples com dados e estilos:



import ExcelJS from 'exceljs';

async function createWorkbook() { const workbook = new ExcelJS.Workbook(); const sheet = workbook.addWorksheet('Relatório');

// Definindo colunas sheet.columns = [ { header: 'ID', key: 'id', width: 10 }, { header: 'Nome', key: 'name', width: 25 }, { header: 'Data', key: 'date', width: 15 }, { header: 'Valor', key: 'amount', width: 12 } ];

// Adicionando linhas sheet.addRow({ id: 1, name: 'João Pedro', date: '2024-01-15', amount: 1500.50 }); sheet.addRow({ id: 2, name: 'Maria Silva', date: '2024-02-20', amount: 2300.75 }); sheet.addRow({ id: 3, name: 'Alexandre Santos', date: '2024-03-10', amount: 890.25 });

// Estilizando 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' } }; headerRow.alignment = { horizontal: 'center' };

// Salvando o arquivo await workbook.xlsx.writeFile('output.xlsx'); console.log('Arquivo criado!');}

createWorkbook();


Este código cria um arquivo output.xlsx com três linhas de dados e um cabeçalho estilizado.



Exemplo 2: Lendo um arquivo Excel com xlsx (SheetJS)



Vamos ler um arquivo existente e exibir os dados no console:



import * as XLSX from 'xlsx';

function readExcel(filePath: string) { const workbook = XLSX.readFile(filePath); const sheetName = workbook.SheetNames[0]; // Pegando a primeira planilha const worksheet = workbook.Sheets[sheetName];

// Convertendo para JSON const data: any[] = XLSX.utils.sheet_to_json(worksheet);

console.log('Dados do arquivo:'); data.forEach((row, index) => { console.log(`Linha ${index + 1}:`, row); });

return data;}

// Usoconst data = readExcel('input.xlsx');


A biblioteca xlsx converte automaticamente a tabela em um array de objetos, onde as chaves são os cabeçalhos das colunas

Recommendations