Excel.js: Tutorial Completo para Trabajar con Archivos Excel
Excel.js es una biblioteca de JavaScript poderosa y flexible que te permite leer, escribir y manipular archivos de Excel de forma fácil y eficiente. Esta biblioteca te proporciona un control granular sobre los archivos de Excel, permitiéndote realizar operaciones complejas como la creación de nuevos archivos, la edición de datos existentes y la aplicación de estilos.
En este tutorial completo, te guiaremos a través de los conceptos básicos de Excel.js, desde la instalación hasta la realización de tareas avanzadas, proporcionándote ejemplos prácticos que te ayudarán a comprender su funcionamiento.
Instalación de Excel.js
Para comenzar a trabajar con Excel.js, primero debes instalarlo en tu proyecto. Puedes hacerlo usando el administrador de paquetes npm:
bash
npm install exceljs
Creando un Nuevo Libro de Trabajo
Después de instalar Excel.js, puedes crear un nuevo libro de trabajo utilizando el siguiente código:
«`javascript
const ExcelJS = require(‘exceljs’);
const workbook = new ExcelJS.Workbook();
«`
Esta línea de código crea un nuevo objeto workbook que representa un libro de trabajo de Excel.
Creando Hojas de Cálculo
Dentro de un libro de trabajo, puedes crear una o más hojas de cálculo. Para crear una nueva hoja de cálculo, utiliza el método addWorksheet():
javascript
const worksheet = workbook.addWorksheet('Hoja1');
Este código crea una nueva hoja de cálculo llamada «Hoja1». Puedes añadir más hojas de cálculo de la misma manera.
Escribiendo Datos en Celdas
Puedes escribir datos en las celdas de una hoja de cálculo utilizando la función getCell(). Esta función toma como argumento el rango de la celda en el formato «A1», «B2», etc.
«`javascript
worksheet.getCell(‘A1’).value = ‘Nombre’;
worksheet.getCell(‘B1’).value = ‘Apellido’;
worksheet.getCell(‘A2’).value = ‘Juan’;
worksheet.getCell(‘B2’).value = ‘Pérez’;
«`
Este código escribe los títulos «Nombre» y «Apellido» en las celdas A1 y B1, respectivamente, y luego escribe los datos «Juan» y «Pérez» en las celdas A2 y B2.
Leyendo Datos de Celdas
Puedes leer los datos de las celdas utilizando la función getCell(), que también te permite obtener información adicional como el tipo de datos.
«`javascript
const cellValue = worksheet.getCell(‘A1’).value;
const cellType = worksheet.getCell(‘A1’).type;
console.log(‘Valor de la celda A1:’, cellValue);
console.log(‘Tipo de datos de la celda A1:’, cellType);
«`
Añadiendo Filas y Columnas
Puedes añadir nuevas filas y columnas a una hoja de cálculo utilizando los métodos addRow() y addColumn(), respectivamente.
«`javascript
const row = worksheet.addRow([‘Nuevo nombre’, ‘Nuevo apellido’]);
const column = worksheet.addColumn({ header: ‘Edad’, width: 10 });
«`
Formateado de Celdas
Excel.js te permite formatear las celdas, incluyendo el tipo de fuente, color, alineación y más.
«`javascript
worksheet.getCell(‘A1’).font = { name: ‘Arial’, size: 14, bold: true };
worksheet.getCell(‘A2’).fill = { type: ‘pattern’, pattern: ‘solid’, fgColor: { argb: ‘FF00FF00’ } };
«`
Guardando el Libro de Trabajo
Una vez que hayas realizado los cambios deseados en el libro de trabajo, puedes guardarlo como un archivo de Excel utilizando la función writeFile().
javascript
workbook.writeFile('mi-archivo.xlsx');
Leyendo un Archivo de Excel
Puedes leer un archivo de Excel existente utilizando la función readFile().
«`javascript
const workbook = new ExcelJS.Workbook();
await workbook.readFile(‘mi-archivo.xlsx’);
const worksheet = workbook.getWorksheet(‘Hoja1’);
console.log(‘Valor de la celda A1:’, worksheet.getCell(‘A1’).value);
«`
Iterando sobre Celdas
Excel.js te proporciona métodos para iterar sobre las celdas de una hoja de cálculo, incluyendo la función eachCell().
javascript
worksheet.eachCell({ includeEmpty: true }, (cell) => {
console.log(`Celda ${cell.address}: ${cell.value}`);
});
Trabajando con Arrays de Datos
Puedes añadir arrays de datos a las columnas y filas de una hoja de cálculo utilizando el método addRows().
«`javascript
const data = [
{ nombre: ‘Juan’, apellido: ‘Pérez’, edad: 30 },
{ nombre: ‘María’, apellido: ‘García’, edad: 25 },
];
worksheet.addRows(data);
«`
Accediendo a los Valores de las Celdas
Puedes acceder a los valores de las celdas de forma individual utilizando la función getCell(), o utilizar el método getCellValues() para obtener todos los valores de una fila o columna.
«`javascript
const cellValue = worksheet.getCell(‘A1’).value;
const rowValues = worksheet.getRow(2).getCellValues();
const columnValues = worksheet.getColumn(‘A’).getCellValues();
«`
Ejemplos de Uso Avanzado
Formateando Columnas
Puedes formatear columnas completas utilizando la función getColumn() y luego modificando las propiedades del objeto de columna.
javascript
const column = worksheet.getColumn('A');
column.width = 20;
column.font = { name: 'Arial', size: 12, bold: true };
column.alignment = { horizontal: 'center', vertical: 'middle' };
Añadiendo Imágenes
Puedes añadir imágenes a tu libro de trabajo utilizando el método addImage().
«`javascript
const imageId = worksheet.addImage({
filename: ‘mi-imagen.png’,
extension: ‘png’,
width: 100,
height: 100,
positioning: { top: 10, left: 10 },
});
worksheet.drawings.add(‘image’, {
type: ‘picture’,
id: imageId,
});
«`
Fusionando Celdas
Puedes fusionar celdas utilizando el método mergeCells().
javascript
worksheet.mergeCells('A1:B1');
Protegiendo Hojas de Cálculo
Puedes proteger hojas de cálculo utilizando el método protect().
javascript
worksheet.protect('Contraseña');
Trabajando con Fórmulas
Puedes utilizar Excel.js para trabajar con fórmulas en las celdas de tu libro de trabajo.
javascript
worksheet.getCell('A1').value = '=SUM(A2:A10)';
Conclusión
Excel.js es una herramienta potente y versátil que te permite trabajar con archivos de Excel de forma programática. Su API intuitiva y completa te permite realizar una amplia gama de tareas, desde la creación de nuevos archivos hasta la manipulación de datos existentes.
Con este tutorial, has aprendido los fundamentos de Excel.js y ahora puedes empezar a trabajar con archivos de Excel en tus proyectos de JavaScript.