Trabajo con Excel en JavaScript (Node.js): bibliotecas y ejemplos de código

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 de código



A pesar de que PythonLib está dedicado al lenguaje Python, el trabajo con hojas de cálculo de Excel también se requiere a menudo en el entorno Node.js. JavaScript (especialmente en el lado del servidor) se utiliza activamente para la automatización de informes, la importación de datos desde sistemas CRM y la generación de listas de precios. En este artículo, analizaremos las tres bibliotecas principales para trabajar con Excel en Node.js, sus capacidades y proporcionaremos ejemplos prácticos de código.



¿Por qué Node.js para Excel?

Node.js es la elección ideal para microservicios y scripts que procesan grandes volúmenes de datos. Las bibliotecas para Excel permiten:

  • Leer archivos .xlsx y .xls existentes.
  • Crear nuevas tablas desde cero.
  • Formatear celdas (colores, fuentes, bordes).
  • Trabajar con fórmulas, estilos y celdas combinadas.
  • Exportar datos a CSV.


Top 3 bibliotecas para Excel en Node.js



1. ExcelJS — el más funcional

ExcelJS es una potente biblioteca con soporte completo para el formato xlsx. Permite trabajar con flujos (streams), lo cual es crítico para archivos grandes. Soporta estilos, formato condicional, gráficos y protección de hojas.

Instalación:

npm install exceljs


Ejemplo 1: Lectura de un archivo existente

const ExcelJS = require('exceljs');

async function readExcel(filePath) { const workbook = new ExcelJS.Workbook(); await workbook.xlsx.readFile(filePath); const worksheet = workbook.getWorksheet(1); // Primera hoja worksheet.eachRow((row, rowNumber) => { console.log(`Fila ${rowNumber}: ${row.values.join(', ')}`); });}

readExcel('data.xlsx');


Ejemplo 2: Creación de un archivo con formato

const ExcelJS = require('exceljs');

async function createStyledExcel() { const workbook = new ExcelJS.Workbook(); const sheet = workbook.addWorksheet('Informe'); // Encabezado con negrita y relleno const headerRow = sheet.getRow(1); headerRow.values = ['Nombre', 'Edad', 'Ciudad']; headerRow.font = { bold: true, size: 12 }; headerRow.fill = { type: 'pattern', pattern: 'solid', fgColor: { argb: 'FFFF00' } // Fondo amarillo }; // Datos sheet.addRow(['Ana', 28, 'Moscú']); sheet.addRow(['Iván', 35, 'San Petersburgo']); // Ancho de columnas sheet.getColumn(1).width = 15; sheet.getColumn(2).width = 10; await workbook.xlsx.writeFile('output.xlsx'); console.log('¡Archivo creado!');}

createStyledExcel();


2. xlsx (SheetJS) — ligero y rápido

La biblioteca xlsx (también conocida como SheetJS) es un "caballo de batalla" para operaciones simples. No soporta formato avanzado, pero maneja muy bien la lectura/escritura de datos. Soporta los formatos xlsx, xls, csv, ods.

Instalación:

npm install xlsx


Ejemplo 3: Lectura y conversión a JSON

const XLSX = require('xlsx');

function readToJSON(filePath) { const workbook = XLSX.readFile(filePath); const sheetName = workbook.SheetNames[0]; const sheet = workbook.Sheets[sheetName]; // Convertimos la hoja en un array de objetos const data = XLSX.utils.sheet_to_json(sheet); console.log(data);}

readToJSON('data.xlsx');


Ejemplo 4: Escritura de un array de datos

const XLSX = require('xlsx');

function writeFromArray() { const data = [ { Name: 'Olga', Age: 30, City: 'Kazán' }, { Name: 'Pedro', Age: 42, City: 'Ekaterimburgo' } ]; const worksheet = XLSX.utils.json_to_sheet(data); const workbook = XLSX.utils.book_new(); XLSX.utils

Recommendations