Trabajo con Excel en JavaScript (Node.js): bibliotecas y ejemplos

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



A pesar de que PythonLib está dedicado al lenguaje Python, en el desarrollo web moderno a menudo surge la necesidad de procesar hojas de cálculo Excel en el lado del servidor usando Node.js. JavaScript (Node.js) es un entorno potente para crear aplicaciones de servidor, y trabajar con hojas de cálculo es una de las tareas más demandadas. En este artículo revisaremos tres bibliotecas principales para trabajar con Excel en Node.js: node-xlsx (xlsx), exceljs y excel4node, y proporcionaremos ejemplos de su uso.



¿Por qué es necesario trabajar con Excel en Node.js?

En el lado del servidor a menudo se requiere:

  • Generar informes en formato XLSX para que los usuarios los descarguen;
  • Importar datos de archivos Excel cargados a una base de datos;
  • Procesar automáticamente listas de precios, tablas de contabilidad y otros documentos;
  • Crear informes complejos con formato, gráficos y estilos.

Node.js maneja estas tareas de manera excelente, proporcionando varias bibliotecas especializadas.



Biblioteca xlsx (SheetJS)

SheetJS (paquete xlsx) es la biblioteca más popular y madura para trabajar con Excel en JavaScript. Soporta la lectura y escritura de múltiples formatos: XLSX, XLS, CSV, ODS y otros. Su principal ventaja es la simplicidad y velocidad.



Instalación

npm install xlsx


Ejemplo: creación y guardado de un archivo Excel

const XLSX = require('xlsx');

// Creamos un nuevo libro de trabajoconst workbook = XLSX.utils.book_new();

// Datos para la tablaconst data = [ ['Nombre', 'Edad', 'Ciudad'], ['Ana', 28, 'Moscú'], ['Iván', 35, 'San Petersburgo'], ['María', 22, 'Kazán']];

// Convertimos el array en una hojaconst worksheet = XLSX.utils.aoa_to_sheet(data);

// Añadimos la hoja al libroXLSX.utils.book_append_sheet(workbook, worksheet, 'Usuarios');

// Escribimos el archivo en discoXLSX.writeFile(workbook, 'users.xlsx');console.log('¡Archivo users.xlsx creado!');


Ejemplo: lectura de un archivo existente

const XLSX = require('xlsx');

const workbook = XLSX.readFile('users.xlsx');const sheetName = workbook.SheetNames[0]; // Tomamos la primera hojaconst worksheet = workbook.Sheets[sheetName];

// Convertimos la hoja en un array de objetosconst jsonData = XLSX.utils.sheet_to_json(worksheet);console.log(jsonData);


Biblioteca exceljs

ExcelJS es una biblioteca más moderna y funcional. Proporciona amplias capacidades de formato: estilos de celdas, fuentes, colores, combinación de celdas, formato condicional, trabajo con imágenes y gráficos. Soporta flujos (streams) para trabajar con archivos grandes.



Instalación

npm install exceljs


Ejemplo: creación de un informe con formato

const ExcelJS = require('exceljs');

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

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

// Añadimos datos sheet.addRow({ product: 'Portátil', price: 75000, quantity: 10 }); sheet.addRow({ product: 'Ratón', price: 1500, quantity: 50 }); sheet.addRow({ product: 'Teclado', price: 3500, quantity: 30 });

// Damos formato al encabezado const headerRow = sheet.getRow(1); headerRow.font = { bold: true, size: 12, color: { argb: 'FFFFFFFF' } }; headerRow.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: 'FF4472C4' } };

// Alineación headerRow.alignment = { vertical: 'middle', horizontal: 'ce

Recommendations