Trabalhando com Excel em TypeScript: bibliotecas, exemplos e ferramentas

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 das bibliotecas e exemplos práticos



TypeScript é uma extensão estritamente tipada do JavaScript, amplamente utilizada no desenvolvimento web, especialmente na criação de aplicações corporativas complexas. Uma das tarefas comuns é trabalhar com planilhas Excel: leitura de dados, geração de relatórios, exportação e importação. Neste artigo, abordaremos as principais bibliotecas para trabalhar com Excel em TypeScript e forneceremos exemplos práticos de código.



Bibliotecas populares para trabalhar com Excel em TypeScript



Atualmente, existem várias soluções estáveis. Vamos considerar as três mais populares:



  • ExcelJS — uma biblioteca poderosa para ler, criar e editar arquivos XLSX. Suporta estilos, fórmulas, gráficos, proteção de planilhas e muito mais. Funciona no navegador e no Node.js.
  • xlsx (SheetJS) — uma biblioteca leve para parsing e geração de planilhas. Ideal para processamento rápido de dados sem formatação complexa.
  • node-xlsx — um wrapper simples sobre o xlsx, voltado para Node.js. Conveniente para exportação rápida de arrays de dados.


Neste guia, focaremos no ExcelJS, pois ele oferece o maior controle sobre a estrutura e os estilos do documento.



Instalação e configuração



Para começar, instale a biblioteca via npm:



npm install exceljsnpm install @types/node --save-dev  // para tipos Node.js


Certifique-se também de que o TypeScript esteja configurado no seu projeto (arquivo tsconfig.json).



Criando um arquivo Excel simples



Exemplo de criação de um arquivo com cabeçalhos e dados:



import * as ExcelJS from 'exceljs';

async function createWorkbook() { const workbook = new ExcelJS.Workbook(); const sheet = workbook.addWorksheet('Funcionários');

// Cabeçalhos sheet.columns = [ { header: 'ID', key: 'id', width: 10 }, { header: 'Nome', key: 'name', width: 25 }, { header: 'Cargo', key: 'position', width: 20 }, { header: 'Salário', key: 'salary', width: 15 }, ];

// Dados const employees = [ { id: 1, name: 'Ivan Petrov', position: 'Desenvolvedor', salary: 150000 }, { id: 2, name: 'Maria Smirnova', position: 'Designer', salary: 120000 }, { id: 3, name: 'Alexei Kuznetsov', position: 'Gerente', salary: 130000 }, ];

employees.forEach(emp => sheet.addRow(emp));

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

createWorkbook();


Lendo dados do Excel



Leitura de um arquivo existente e conversão dos dados em objetos TypeScript:



import * as ExcelJS from 'exceljs';

interface Employee { id: number; name: string; position: string; salary: number;}

async function readWorkbook() { const workbook = new ExcelJS.Workbook(); await workbook.xlsx.readFile('employees.xlsx'); const sheet = workbook.getWorksheet('Funcionários'); const employees: Employee[] = [];

sheet.eachRow((row, rowNumber) => { if (rowNumber === 1) return; // pulando cabeçalhos employees.push({ id: row.getCell(1).value as number, name: row.getCell(2).value as string, position: row.getCell(3).value as string, salary: row.getCell(4).value as number, }); });

console.log('Funcionários lidos:', employees.length); console.log(employees);}

readWorkbook();


Formatação e estilos



O ExcelJS permite personalizar a aparência das células: fontes, preenchimento, bordas, alinhamento. Exemplo de adição de estilos aos cabeçalhos:



import * as ExcelJS from 'exceljs';

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

// Definindo estilo para cabeçalhos const headerStyle: Partial&

Recommendations