30 septiembre, 2023

MOVER UN RANGO DE DATOS ENTRE VARIAS HOJAS CON TYPESCRIPT: CONVIRTIENDO SCRIPT ASÍNCRONO HEREDADO AL MODELO ACTUAL

Hola a todos!:

Hoy voy a convertir otro script asíncrono y heredado al modelo actual. Se trata de: MOVER UN RANGO DE DATOS ENTRE VARIAS HOJAS CON TYPESCRIPT

Un post en el que resuelvo la tarea de mover datos entre varias hojas de Excel, sin necesidad que tener formatos tabla ni otras formas. Con este código se resuelve el problema con los scripts asíncronos y el nuevo modelo del API.

Este es el código que os propongo:

async function main(workbook: ExcelScript.Workbook) {
    //asignamos variables para hojas 1 y 2
    let Origen = workbook.getWorksheet("Hoja1");
    let Destino = workbook.getWorksheet("Hoja2");
    //cargamos valores de filas y columnas
    let MiRangoRow = Origen.getUsedRange();
    let MiRangoColumn = Origen.getUsedRange();
    //contamos filas y columnas
    let FinRow = MiRangoRow.getRowCount();
    let FinColumn = MiRangoColumn.getColumnCount();
    let encabezados = Origen.getRangeByIndexes(0, 0, 1, FinColumn)
    let ndatos = Origen.getRangeByIndexes(1, 0, FinRow - 1, FinColumn)
    //asignamos variables para el conjunto de datos y los encabezados
    let MisDatos = ndatos.getValues();
    let MiEncabezado = encabezados.getValues();
    //Pasamos encabezado a hoja Destino
    Destino.getRangeByIndexes(0, 0, 1, FinColumn).setValues(MiEncabezado);
    //Damos color verde a los títulos
    Destino.getRangeByIndexes(0, 0, 1, FinColumn).getFormat().getFill().setColor("32CD32")
    // Pasamos base de datos
    Destino.getRangeByIndexes(1, 0, FinRow - 1, FinColumn).setValues(MisDatos);
    // Damos formato fecha a la columna 0
    Destino.getRangeByIndexes(1, 0, FinRow - 1, 1).setNumberFormatLocal("dd/mm/aaaa");
    // Damos formato fecha a la columna 13
    Destino.getRangeByIndexes(1, 13, FinRow - 1, 1).setNumberFormatLocal("dd/mm/aaaa");
    // Damos formato moneda a la columna 17
    Destino.getRangeByIndexes(1, 17, FinRow - 1, 1).setNumberFormatLocal("#.##0,00 €")
}

Como en los post anteriores, he adaptado propiedades y eliminado elementos que ya no son necesarios.

Espero que sea 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

Un comentario en «MOVER UN RANGO DE DATOS ENTRE VARIAS HOJAS CON TYPESCRIPT: CONVIRTIENDO SCRIPT ASÍNCRONO HEREDADO AL MODELO ACTUAL»

  1. Hola buenas tardes:

    Yo he copiado el código en el Script Lab de Excel 2016 y el primero error que envía es: «unable to get property ´getworksheet´ of undefined or null reference».

    Esto también me paso con el de «Trabajar con Funciones de Excel en TypeScript» y al utilizar el código anterior pude hacerlo funciona, al parecer por lo menos para mí, debo utilizar lo que tu llamas el modelo Asíncrono.

    ¿Tu sabrás por que me pasa y que tengo que hacer para utilizar el modelo Actual?

    Muchas Gracias.

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