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 xlsxPara TypeScript, instale adicionalmente los tipos (para xlsx están integrados):
npm install @types/exceljs --save-devnpm install @types/node --save-dev3. 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 También en la biblioteca
Generación de PDF en Rust: revisión de bibliotecas y herramientas
Trabajo con fechas en JavaScript (Node.js): bibliotecas populares
Análisis de HTML en Go (Golang): bibliotecas y ejemplos de código
Frameworks CLI para Go (Golang): revisión completa de herramientas para crear aplicaciones de consola
lo para Go: guía completa con ejemplos prácticos