Gérer les tableaux dynamiques et les débordements à l’aide de l’API JavaScript Excel

Cet article fournit un exemple de code qui gère les tableaux dynamiques et l’extension de plage à l’aide de l’API JavaScript Excel. Pour obtenir la liste complète des propriétés et méthodes prises en charge par l’objet Range , voir Classe Excel.Range.

Tableaux dynamiques

Certaines formules Excel retournent des tableaux dynamiques. Ceux-ci remplissent les valeurs de plusieurs cellules en dehors de la cellule d’origine de la formule. Ce dépassement de valeur est appelé « déversement ». Votre complément peut trouver la plage utilisée pour un déversement à l’aide de la méthode Range.getSpillingToRange . Il existe également une version *OrNullObject, Range.getSpillingToRangeOrNullObject.

L’exemple suivant montre une formule de base qui copie le contenu d’une plage dans une cellule, ce qui se répand dans les cellules voisines. Le complément enregistre ensuite la plage qui contient le déversement.

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}.`);
});

Dépassement de plage

Recherchez la cellule responsable de la propagation dans une cellule donnée à l’aide de la méthode Range.getSpillParent . Notez que getSpillParent fonctionne uniquement lorsque l’objet de plage est une seule cellule. L’appel getSpillParent sur une plage avec plusieurs cellules entraîne la levée d’une erreur (ou le renvoi d’une plage null pour Range.getSpillParentOrNullObject).

Voir aussi