1 marzo, 2024

CONSOLIDAR VARIAS TABLAS EN UNA HOJA CON TYPESCRIPT

Hola a todos!

Cuando queremos consolidar o agrupar la información de varias tablas en una única tabla y estamos trabajando con typescript, un forma de conseguir nuestro objetivo es mediante código.

Os expondré un ejemplo, estos son los datos de tres hojas, cada una de ellas en una hoja:

Datos de la hoja1:

Datos de la hoja2:

Datos de la hoja3:

Y para consolidar la información vamos a utilizar el siguiente código incluyendo una nueva hoja denominada «CONSOLIDADO»:. Os comparto el código con los comentarios por cada línea:

function main(workbook: ExcelScript.Workbook) {
	//Seleccionamos hoja CONSOLIDADO
	var miHoja = workbook.getWorksheet('CONSOLIDADO');
	// Si la tabla se llama tablaN y existe una tabla en la hoja consolidado
	if (miHoja.getTables()[0] !== undefined && miHoja.getTables()[0].getName()=="tablaN") {
		var tbla = miHoja.getTables()[0];
		// eliminamos la tablaN limpiando resultados anteriores
		tbla.delete();
	}
	// Obtenemos todas las tablas
	var tables = workbook.getTables();
	//Obtenemos texto de los encabezados
	var encabezados = tables[0].getHeaderRowRange().getTexts();
  //igualamaos rango a matriz de encabezados
	miHoja.getRange("A1:H1").setValues([encabezados][0]);
	//creamos tabla en el rango establecido y renombramos tabla
	var miTabla = workbook.addTable(miHoja.getRange("A1:H1"), true);
	miTabla.setName("tablaN");
	//vamos añadiendo las filas de cada tabla a la tabla final
	for (var ntabla of tables) {
		var valores = ntabla.getRangeBetweenHeaderAndTotal().getTexts();
		var fin = ntabla.getRowCount();
		if (fin > 0) {
			miTabla.addRows(-1, valores);
		}
	}
}

Una vez ejecutamos el proceso obtendremos los datos consolidados en una única tabla:

Y esto es todo, espero que os sea de utilidad en vuestros procesos y rutinas.

¿Te ha resultado de interés?, puedes apoyar a Excel Signum con una pequeña donación.

Donate Button with Credit Cards

¡¡Muchas gracias!!

Mediante la suscripción al blog, la realización comentarios o el uso del formulario de contacto estás dando tu consentimiento expreso al tratamiento de los datos personales proporcionados según lo dispuesto en la ley vigente (LOPD). Tienes más información al respecto en esta página del blog: Política de Privacidad y Cookies

Comparte este post

Si te ha gustado o tienes alguna duda, puedes dejar aquí tu comentario.

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies