3 febrero, 2023

OBTENER DIRECCIÓN DE CELDA ACTUAL, NÚMERO DE FILA Y LETRA DE LA COLUMNA CON TYPESCRIPT

Hola a todos!

Hoy toca un post en el que vamos a trabajar varios elementos relacionados con la celda activa en la que nos encontremos en nuestra hoja de Excel.

Como viene siendo habitual, nos referiremos a typescript como lenguaje de trabajo. Imaginad que tenemos una celda seleccionada en nuestra hoja (1) de Excel. En concreto la celda seleccionada está posicionada en H7:

Para obtener la dirección actual utilizaremos el método .getAddress(), el resultado o salida es el siguiente: Hoja1!H7

var celdaActual = workbook.getSelectedRange().getAddress().toString();

Además de darnos la fila y la columna, nos ofrece la hoja actual, la Hoja1.

Para obtener el número de la fila, en este caso el 7, utilizaremos el siguiente código:

 var fAct = workbook.getSelectedRange().getAddress().toString().split('!')[1];
    var filaActiva: string
    if (fAct.includes(':')) {
        filaActiva = "LAS FILAS DEL RANGO SELECCIONADO SON: La fila inicial es " + fAct.toString().split(':')[0].replace(/\D/g, '') + " y fila final " + fAct.toString().split(':')[1].replace(/\D/g, '')
    } else { filaActiva ="LA FILA SELECCIONADA ES " +fAct.replace(/\D/g, '');}

Lo he complicado un poco para que sea capaz de detectar la primera y última fila de un rango (solo el número). Lo importante es trabajar con la función Split para obtener el elemento anterior y siguiente al carácter indicado, en este caso los dos puntos (:) o la admiración (!). y posteriormente utilizar el objeto RegEx para eliminar las letras o los números de la cadena con un replace().

Y finalmente, para detectar la letra de la columna, basta con eliminar los números de la string de fAct y obtendremos la letra H. Al igual que en el caso anterior, lo he complicado un poco para obtener la letra de la primera columna y la última si hemos seleccionado un rango.

var columna: string
    if (fAct.includes(':')) {
        columna = "LAS FILAS DEL RANGO SELECCIONADO SON: La columna inicial es " + fAct.toString().split(':')[0].replace(/[0-9]/g, '') + " y columna final " + fAct.toString().split(':')[1].replace(/[0-9]/g, '')
    } else { columna = "LA COLUMNA SELECCIONADA ES " + fAct.replace(/[0-9]/g, '')}

Y finalmente mostramos el resultado en la consola:

console.log("LA CELDA SELECCIONADA ES: " + celdaActual, filaActiva, columna) 

Este es el resultado:

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