5 octubre, 2022

AJUSTE FIJO CON DISTINTO ANCHO DE COLUMNA EN TODAS LAS HOJAS CON TYPESCRIPT

Buenos días!!

Tal y como os comentaba en el post de ayer: AJUSTE FIJO CON MISMO ANCHO DE COLUMNA EN TODAS LAS HOJAS CON TYPESCRIPT, en el post de hoy voy a mostrar como dar ancho fijo a una columna con un nombre o encabezado en concreto.

Es decir, vamos a tener que pasar un loop por todas las hojas y otro bucle que recorra todas las columnas para obtener el valor de la primera celda y aplicar la condición y ancho de columna (ojo, que existen otros métodos para hacer esto, pero hoy propongo así la solución).

El código que vamos a usar en nuestro script será este:

async function main(workbook: ExcelScript.Workbook) {
	var nHojas = workbook.getWorksheets();
	//recorremos todas las hojas
	nHojas.forEach((sheet) => {
		//detectamos el número de columnas de cada hoja
		var fin = sheet.getUsedRange().getColumnCount();
		//recorremos las columnas
		for (var i = 0; i < fin; i++) {
			//aplicamos ancho según nombre del campo
			var campo= sheet.getCell(0,i).getValue();
			if (campo=='ID') {
				sheet.getCell(0, i).getFormat().setColumnWidth(20);
			} else if (campo == 'NOMBRE COMPLETO') {
				sheet.getCell(0, i).getFormat().setColumnWidth(150);
			} else if (campo == 'SECCION') {
				sheet.getCell(0, i).getFormat().setColumnWidth(150);
			} else if (campo == 'EDAD') {
				sheet.getCell(0, i).getFormat().setColumnWidth(30);
			} else if (campo == 'SEXO') {
				sheet.getCell(0, i).getFormat().setColumnWidth(50);
			} else if (campo == '2 º IDIOMA') {
				sheet.getCell(0, i).getFormat().setColumnWidth(80);
			} else if (campo == 'ESTUDIOS') {
				sheet.getCell(0, i).getFormat().setColumnWidth(130);
			}
			}
	});
}

Como indicaba más arriba, estamos recorriendo todas las hojas y todas las columnas. Obteniendo el valor de la primera celda:

var campo= sheet.getCell(0,i).getValue();

Y aplicando el ancho de columna para cada nombre en concreto:

if (campo=='ID') { sheet.getCell(0, i).getFormat().setColumnWidth(20); }

El ancho de píxeles que se aplica en el código no se traduce exactamente en el ancho de píxeles que podemos luego comprobar en la cinta de opciones. Os recomiendo seguir una regla: en el código (80) equivale en la columna de Excel a un ancho de 107 px, con esto podréis obtener con una regla de tres el número a indicar en el código.

Y esto es todo, espero que sea de utilidad.

¿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