Trabajo con Excel en JavaScript (Node.js): bibliotecas 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 JavaScript (Node.js)



El desarrollo web moderno a menudo requiere la interacción programática con hojas de cálculo. La exportación de informes, la importación de datos desde sistemas contables, el procesamiento de grandes volúmenes de información: todo esto hace que trabajar con Excel en Node.js sea una tarea demandada. En este artículo, revisaremos las tres bibliotecas más populares para trabajar con el formato XLSX: xlsx, exceljs y excel4node. Aprenderá cómo instalar cada una de ellas, crear, editar y leer archivos de Excel.



Biblioteca xlsx (SheetJS)



xlsx es la biblioteca más popular y ligera para trabajar con hojas de cálculo en Node.js. Soporta no solo XLSX, sino también XLS, CSV, ODS y otros formatos. Su principal ventaja es la simplicidad de la API y la alta velocidad de trabajo.



Instalación:

npm install xlsx


Ejemplo: creación y escritura de un archivo Excel

const XLSX = require('xlsx');

// Creamos una hoja de trabajo con datosconst data = [ { Nombre: 'Ana', Edad: 28, Ciudad: 'Moscú' }, { Nombre: 'Iván', Edad: 35, Ciudad: 'San Petersburgo' }, { Nombre: 'Olga', Edad: 22, Ciudad: 'Kazán' }];

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

// Guardamos el archivoXLSX.writeFile(workbook, 'employees.xlsx');console.log('¡Archivo employees.xlsx creado!');


Ejemplo: lectura de un archivo existente

const workbook = XLSX.readFile('employees.xlsx');const sheetName = workbook.SheetNames[0];const worksheet = workbook.Sheets[sheetName];const jsonData = XLSX.utils.sheet_to_json(worksheet);

console.log('Datos del archivo:', jsonData);


Ventajas:

  • Tamaño mínimo (alrededor de 50 KB comprimido)
  • Soporte para múltiples formatos (XLSX, XLS, CSV, ODS)
  • API simple para conversión JSON ↔ tabla


Desventajas:

  • Capacidades de formato limitadas (estilos, fuentes, colores)
  • Dificultades con celdas combinadas y fórmulas complejas


Biblioteca exceljs



exceljs es una biblioteca avanzada para trabajar con archivos XLSX. Proporciona control total sobre el formato: puede gestionar fuentes, colores, bordes, celdas combinadas, formato condicional e incluso agregar imágenes.



Instalación:

npm install exceljs


Ejemplo: creación de un informe formateado

const ExcelJS = require('exceljs');

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

// Definimos las columnas worksheet.columns = [ { header: 'Producto', key: 'product', width: 20 }, { header: 'Cantidad', key: 'quantity', width: 15 }, { header: 'Precio', key: 'price', width: 15 } ];

// Agregamos datos worksheet.addRow({ product: 'Portátil', quantity: 10, price: 75000 }); worksheet.addRow({ product: 'Ratón', quantity: 50, price: 1500 });

// Formato del encabezado const headerRow = worksheet.getRow(1); headerRow.font = { bold: true, color: { argb: 'FFFFFFFF' } }; headerRow.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: 'FF4472C4' } };

// Formato de las celdas de precios const priceColumn = worksheet.getColumn(3); priceColumn.numFmt = '#,##0.00';

// Guardamos await workbook.xlsx.writeFile('report.xlsx'); console.log('¡Informe creado con formato!');}

createReport();


Ejemplo: lectura y modificación de un archivo

const workbook = new ExcelJS.Workbook();await workbook.xlsx.readFile('report.xlsx');const worksheet = w                    

Recommendations