Trabajo con Excel en TypeScript: bibliotecas, ejemplos y herramientas

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: reseña de bibliotecas y ejemplos prácticos



TypeScript es una extensión fuertemente tipada de JavaScript que se utiliza activamente en el desarrollo web, especialmente en la creación de aplicaciones empresariales complejas. Una de las tareas frecuentes es trabajar con tablas de Excel: lectura de datos, generación de informes, exportación e importación. En este artículo analizaremos las principales bibliotecas para trabajar con Excel en TypeScript y proporcionaremos ejemplos prácticos de código.



Bibliotecas populares para trabajar con Excel en TypeScript



Hoy en día existen varias soluciones estables. Consideremos las tres más populares:



  • ExcelJS — una potente biblioteca para leer, crear y editar archivos XLSX. Admite estilos, fórmulas, gráficos, protección de hojas y mucho más. Funciona en el navegador y Node.js.
  • xlsx (SheetJS) — una biblioteca ligera para analizar y generar tablas. Ideal para el procesamiento rápido de datos sin formato complejo.
  • node-xlsx — un envoltorio simple sobre xlsx, orientado a Node.js. Conveniente para la exportación rápida de arreglos de datos.


En esta guía nos centraremos en ExcelJS, ya que proporciona el mayor control sobre la estructura y los estilos del documento.



Instalación y configuración



Para comenzar, instale la biblioteca a través de npm:



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


Asegúrese también de que TypeScript esté configurado en su proyecto (archivo tsconfig.json).



Creación de un archivo Excel simple



Ejemplo de creación de un archivo con encabezados y datos:



import * as ExcelJS from 'exceljs';

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

// Encabezados sheet.columns = [ { header: 'ID', key: 'id', width: 10 }, { header: 'Nombre', key: 'name', width: 25 }, { header: 'Cargo', key: 'position', width: 20 }, { header: 'Salario', key: 'salary', width: 15 }, ];

// Datos const employees = [ { id: 1, name: 'Iván Petrov', position: 'Desarrollador', salary: 150000 }, { id: 2, name: 'María Smirnova', position: 'Diseñadora', salary: 120000 }, { id: 3, name: 'Alexéi Kuznetsov', position: 'Gerente', salary: 130000 }, ];

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

// Guardar await workbook.xlsx.writeFile('employees.xlsx'); console.log('¡Archivo creado!');}

createWorkbook();


Lectura de datos desde Excel



Lectura de un archivo existente y conversión de datos a 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('Empleados'); const employees: Employee[] = [];

sheet.eachRow((row, rowNumber) => { if (rowNumber === 1) return; // omitimos encabezados 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('Empleados leídos:', employees.length); console.log(employees);}

readWorkbook();


Formato y estilos



ExcelJS permite personalizar la apariencia de las celdas: fuentes, relleno, bordes, alineación. Ejemplo de agregar estilos a los encabezados:



import * as ExcelJS from 'exceljs';

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

// Definimos el estilo para los encabezados const headerStyle: Partial&

Recommendations