30 septiembre, 2023

CONSOLIDAR HOJAS DE UN LIBRO DE EXCEL ONLINE CON TYPESCRIPT

Hola a todos!

He estado trabajando sobre la forma de consolidar la información de todas las hojas de un libro en una hoja utilizando Typescript.

He realizado pruebas usando matrices y varios loops, pero francamente, el proceso es demasiado lento (lentíssssssimo), y he optado por ser práctico e intentarlo con el procedimiento de copia y pega, y la verdad es que ha salido bastante bien.

Aquí os muestro las 3 hojas a consolidar:

Y llevaremos el resultado completo a la hoja RESULTADO donde agruparemos los 30 registros con su información.

El código que vamos a usar es el siguiente:

async function main(workbook: ExcelScript.Workbook) {
  var nHojas = workbook.getWorksheets();
  var resultado = workbook.getWorksheet("RESULTADO");
  //creamos títulos
  var titulos = ["ID", "NOMBRE COMPLETO", "SECCIÓN", "NACIMIENTO", "2º IDIOMA", "ESTUDIOS"]
  resultado.getRange("A1:F1").setValues([titulos])
  //por cada hoja que no sea RESULTADO
  nHojas.forEach((sheet) => {
    var hoja = sheet.getName()
    if (hoja != 'RESULTADO') {
      var filas = sheet.getUsedRange().getRowCount();
      var columnas = sheet.getUsedRange().getColumnCount();
      var mFila = +resultado.getUsedRange().getRowCount();
      //copiamos rango de hoja con datos y lo pegamos en hoja RESULTADO
      resultado.getRange("A" + (mFila + 1)).copyFrom(sheet.getRangeByIndexes(1, 0, filas, columnas), ExcelScript.RangeCopyType.all);
      resultado.activate();
    }
  });
}

Como podéis observar, añadimos títulos a la hoja RESULTADO y a continuación mediante un loop vamos copiando y pegando según el rango seleccionado. Nos ayudaremos del método .getRangeByIndexes() para realizar las selecciones.

El resultado es el siguiente:

Y ya tendríamos la información de las tres hojas totalmente consolidada!!.

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