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.jsAsegú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& También en la biblioteca
bcrypt en Go: guía completa con ejemplos prácticos
Procesamiento JSON en Java: bibliotecas Jackson y Gson para trabajar con datos
Warp para Rust: guía completa con ejemplos
Trabajo con fechas en Go (Golang): librerías time, carbon y now
Trabajo con CSV en Kotlin: bibliotecas, análisis y escritura de datos