Share via


Control de matrices dinámicas y desbordamientos mediante la API de JavaScript de Excel

En este artículo se proporciona un ejemplo de código que controla las matrices dinámicas y el desbordamiento de intervalos mediante la API de JavaScript de Excel. Para obtener la lista completa de propiedades y métodos que admite el Range objeto, vea Clase Excel.Range.

Matrices dinámicas

Algunas fórmulas de Excel devuelven matrices dinámicas. Estos rellenan los valores de varias celdas fuera de la celda original de la fórmula. Este desbordamiento de valor se conoce como "desbordamiento". El complemento puede encontrar el intervalo usado para un derrame con el método Range.getSpillingToRange . También hay una versión de *OrNullObject, Range.getSpillingToRangeOrNullObject.

En el ejemplo siguiente se muestra una fórmula básica que copia el contenido de un rango en una celda, que se derrama en celdas vecinas. A continuación, el complemento registra el intervalo que contiene el derrame.

await Excel.run(async (context) => {
    let sheet = context.workbook.worksheets.getItem("Sample");

    // Set G4 to a formula that returns a dynamic array.
    let targetCell = sheet.getRange("G4");
    targetCell.formulas = [["=A4:D4"]];

    // Get the address of the cells that the dynamic array spilled into.
    let spillRange = targetCell.getSpillingToRange();
    spillRange.load("address");

    // Sync and log the spilled-to range.
    await context.sync();

    // This will log the range as "G4:J4".
    console.log(`Copying the table headers spilled into ${spillRange.address}.`);
});

Desbordamiento de intervalos

Busque la celda responsable del derrame en una celda determinada mediante el método Range.getSpillParent . Tenga en cuenta que getSpillParent solo funciona cuando el objeto de rango es una sola celda. Si se llama a getSpillParent un rango con varias celdas, se producirá un error (o se devolverá un intervalo NULL para Range.getSpillParentOrNullObject).

Vea también