Trabajo con Excel en TypeScript: bibliotecas, herramientas y ejemplos de código

Entrenador de Python en Línea para Principiantes

Aprende Python fácilmente sin sobrecargarte de teoría. Resuelve tareas prácticas con verificación automática, recibe pistas y escribe código directamente en el navegador, sin instalar nada.

Start Course

Trabajo con Excel en TypeScript: resumen completo de herramientas



TypeScript, como extensión de JavaScript con tipado estático, ofrece excelentes capacidades para crear aplicaciones empresariales complejas. Una de las tareas frecuentes es trabajar con archivos de Microsoft Excel: leer, crear y editar tablas. En este artículo, revisaremos las mejores bibliotecas para trabajar con Excel en TypeScript, sus características y proporcionaremos ejemplos prácticos de código.



Bibliotecas populares para trabajar con Excel



Hoy en día, existen varias soluciones maduras. Estas son las principales:



  • ExcelJS — la biblioteca más potente con soporte para estilos, fórmulas, gráficos y procesamiento por flujo.
  • xlsx (SheetJS) — una biblioteca ligera y rápida, ideal para operaciones simples de lectura/escritura.
  • node-excel-export — obsoleta, pero aún utilizada en proyectos heredados.
  • Excel4Node — especializada en la creación de informes complejos con formato.


Para la mayoría de los proyectos modernos en TypeScript, recomendamos ExcelJS y xlsx (SheetJS). Los veremos en detalle.



Instalación y configuración



La instalación de ambas bibliotecas se realiza a través de npm:



npm install exceljsnpm install xlsx


Para TypeScript, es necesario instalar los tipos (si no vienen incluidos):



npm install --save-dev @types/node


Tenga en cuenta: ExcelJS viene con tipos integrados, mientras que para xlsx los tipos deben instalarse por separado:



npm install --save-dev @types/xlsx


Ejemplo 1: Creación de un archivo Excel con ExcelJS



Creemos una tabla simple con datos y estilos:



import ExcelJS from 'exceljs';

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

// Definimos las columnas sheet.columns = [ { header: 'ID', key: 'id', width: 10 }, { header: 'Nombre', key: 'name', width: 25 }, { header: 'Fecha', key: 'date', width: 15 }, { header: 'Monto', key: 'amount', width: 12 } ];

// Agregamos filas sheet.addRow({ id: 1, name: 'Iván Petrov', date: '2024-01-15', amount: 1500.50 }); sheet.addRow({ id: 2, name: 'María Sidorova', date: '2024-02-20', amount: 2300.75 }); sheet.addRow({ id: 3, name: 'Alexéi Ivánov', date: '2024-03-10', amount: 890.25 });

// Estilización del encabezado 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' };

// Guardamos el archivo await workbook.xlsx.writeFile('output.xlsx'); console.log('¡Archivo creado!');}

createWorkbook();


Este código crea un archivo output.xlsx con tres filas de datos y un encabezado atractivo.



Ejemplo 2: Lectura de un archivo Excel con xlsx (SheetJS)



Leamos un archivo existente y mostremos los datos en la consola:



import * as XLSX from 'xlsx';

function readExcel(filePath: string) { const workbook = XLSX.readFile(filePath); const sheetName = workbook.SheetNames[0]; // Tomamos la primera hoja const worksheet = workbook.Sheets[sheetName];

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

console.log('Datos del archivo:'); data.forEach((row, index) => { console.log(`Fila ${index + 1}:`, row); });

return data;}

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


La biblioteca xlsx convierte automáticamente la tabla en un array de objetos, donde las claves son los encabezados de las columnas.

Recommendations