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: bibliotecas, ejemplos y herramientas



TypeScript es un lenguaje potente para el desarrollo de aplicaciones web, y a menudo surge la necesidad de trabajar programáticamente con archivos Excel: leer informes, generar tablas, exportar datos. En este artículo, revisaremos las tres bibliotecas principales para trabajar con Excel en TypeScript, sus capacidades y proporcionaremos ejemplos prácticos.



1. Bibliotecas principales para trabajar con Excel en TypeScript



Existen varias soluciones populares, cada una con sus puntos fuertes:



  • ExcelJS — la biblioteca más popular para leer, escribir y estilizar archivos Excel. Soporta .xlsx, .xlsm, .csv, así como el trabajo con fórmulas, formato condicional e imágenes.
  • xlsx (SheetJS) — una biblioteca ligera y rápida para operaciones básicas: lectura y escritura de datos tabulares. Ideal para tareas simples.
  • excel4node — una biblioteca para crear archivos Excel con énfasis en el rendimiento y el soporte de estilos.


2. Instalación y configuración



Para instalar la biblioteca seleccionada, use npm. Veamos la instalación de ExcelJS y xlsx:



npm install exceljsnpm install xlsx


Para TypeScript, instale adicionalmente los tipos (para xlsx están integrados):



npm install @types/exceljs --save-devnpm install @types/node --save-dev


3. Trabajo con Excel a través de ExcelJS



3.1 Creación y escritura de un archivo



Creemos un nuevo archivo Excel con encabezados y datos:



import * as ExcelJS from 'exceljs';

async function createExcel() { const workbook = new ExcelJS.Workbook(); const worksheet = workbook.addWorksheet('Datos');

// Definimos las columnas worksheet.columns = [ { header: 'Nombre', key: 'name', width: 25 }, { header: 'Edad', key: 'age', width: 10 }, { header: 'Ciudad', key: 'city', width: 20 } ];

// Agregamos filas worksheet.addRow({ name: 'Ana', age: 28, city: 'Moscú' }); worksheet.addRow({ name: 'Iván', age: 35, city: 'San Petersburgo' }); worksheet.addRow({ name: 'Olga', age: 22, city: 'Kazán' });

// Estilización de encabezados const headerRow = worksheet.getRow(1); headerRow.font = { bold: true, color: { argb: 'FFFFFFFF' } }; headerRow.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: 'FF4472C4' } };

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

createExcel();


3.2 Lectura de un archivo existente



Leamos los datos del archivo creado anteriormente:



async function readExcel() {  const workbook = new ExcelJS.Workbook();  await workbook.xlsx.readFile('example.xlsx');

const worksheet = workbook.getWorksheet('Datos'); if (!worksheet) return;

worksheet.eachRow((row, rowNumber) => { const rowData = row.values as any[]; console.log(`Fila ${rowNumber}: ${rowData.join(', ')}`); });}

readExcel();


4. Trabajo con Excel a través de xlsx (SheetJS)



4.1 Lectura de datos



La biblioteca xlsx permite leer rápidamente los datos de un archivo:



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('example.xlsx');


4.2 Creación y escritura



Creemos un archivo Excel simple a partir de un array de objetos:



function createXlsx() {  const data = [    { Name: 'Ana', Age: 28, City: 'Moscú' },    { Name: 'Iván', Age: 35, City: 'SPb' }  ];

const worksheet = XLSX.utils.json_to_sheet(data); const workbook = XLSX.utils.book_new(); XLSX.utils.book_append_sheet(workbook, wor

Recommendations