Get Even More Visitors To Your Blog, Upgrade To A Business Listing >>

Office Scripts: Verificaciones previas

Un buen consejo hablando en cualquier entorno de programación es el de validar la existencia de aquellos objetos sobre los que vamos a trabajar, y Office Scripts no es una excepción...
Hoy veremos algún truco que nos puede ayudar a validar si cierto objeto está presente en nuestro entorno de trabajo.

El primer truco consiste en emplear el operador ? el cual comprueba si el objeto existe antes de llamar a un método o propiedad en concreto...
Veamos un ejemplo sencillo.

Supongamos queremos recuperar un dato de la hoja 'Resumen' de nuestro libro de trabajo...
pero que dicha hoja NO EXISTE!!
function main(workbook: ExcelScript.Workbook) 
{
// queremos trabajar sobre una hoja llamada 'Resumen'
//que en realidad NO existe
let hoja = workbook.getWorksheet('Resumen');
let myRango = hoja?.getRange("A1");

console.log (myRango?.getValue());
}

Al lanzar nuestro scripts con el operador:
let myRango = hoja?.getRange("A1");
fíjate que lo usamos sobre el objeto ('hoja' en mi ejemplo), antes de usar el método .getRange, y también sobre el objeto rango ...
Si hubieramos omitido uno u otro, al no existir la hoja 'Resumen' nos aparecería un mensaje de error:
Cannot read properties of undefined (reading 'getRange')

Una alternativa consistiría en el uso de condicionales, y operadores de comparación y negación (revisa este artículo).
En el siguiente código aplicamos una estructura if... then... else para comprobar si existe la hoja 'Resumen':
function main(workbook: ExcelScript.Workbook)
{
let hoja = workbook.getWorksheet('Resumen');
if (hoja) {
let range = hoja.getRange("A1");
}
else {
console.log("La hoja 'Resumen' no existe.");
}
}

donde basicamente decimos que si 'hoja' es verdadero, i.e., existe el objeto, entonces seguimos trabajando sobre la celda A1, y en caso contrario, saltará un mensaje en la consola...

Podríamos elaborar un poco mas el proceso, creando dos funciones:
function main(workbook: ExcelScript.Workbook) {
let hoja = workbook.getWorksheet('Resumen');

// comprueba si true o false con la función check_hoja
if (!check_hoja(hoja ) )
{
console.log('Sabemos que la hoja no existe');}
else {
let nombreHoja=hoja.getName();
console.log('Sabemos que la hoja ' + nombreHoja +' SÍ existe');
let sel=hoja.activate();
}}
//////////////////////////////////////////////////////
function check_hoja(shResumen: ExcelScript.Worksheet): boolean {
// Check si existe la hoja cargada como parametro
if (!shResumen) {
console.log(`No existe la hoja, comprueba qué pasa...`);
return false; //devolvemos como resultado de la función false
// y finaliza la función
}
// si ha continuado es que la hoja existe
// y por tanto devuelve true
return true;
}

OJO con la prueba lógica de la función principal... donde empleo una condición inversa.

En un próximo artículo analizaremos alguna alternativa para controlar posibles errores ;-)


This post first appeared on EXCEL FORO: EJERCICIOS, EJEMPLOS, SOLUCIONES, DUDA, please read the originial post: here

Share the post

Office Scripts: Verificaciones previas

×

Subscribe to Excel Foro: Ejercicios, Ejemplos, Soluciones, Duda

Get updates delivered right to your inbox!

Thank you for your subscription

×