Behandeln von dynamischen Arrays und Überlauf mithilfe der Excel-JavaScript-API

Dieser Artikel enthält ein Codebeispiel, das dynamische Arrays und Bereichsüberläufe mithilfe der Excel-JavaScript-API behandelt. Eine vollständige Liste der Eigenschaften und Methoden, die das Range Objekt unterstützt, finden Sie unter Excel.Range-Klasse.

Dynamische Arrays

Einige Excel-Formeln geben dynamische Arrays zurück. Diese füllen die Werte mehrerer Zellen außerhalb der ursprünglichen Zelle der Formel aus. Dieser Wertüberlauf wird als "Überlauf" bezeichnet. Ihr Add-In kann den für einen Spill verwendeten Bereich mit der Range.getSpillingToRange-Methode finden. Es gibt auch eine *OrNullObject-Version, Range.getSpillingToRangeOrNullObject.

Das folgende Beispiel zeigt eine einfache Formel, die den Inhalt eines Bereichs in eine Zelle kopiert, die in benachbarte Zellen überläuft. Das Add-In protokolliert dann den Bereich, der den Überlauf enthält.

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

Bereichsüberlauf

Suchen Sie mithilfe der Range.getSpillParent-Methode nach der Zelle, die für das Überlappen in eine bestimmte Zelle verantwortlich ist. Beachten Sie, dass getSpillParent nur funktioniert, wenn das Bereichsobjekt eine einzelne Zelle ist. Das Aufrufen getSpillParent eines Bereichs mit mehreren Zellen führt dazu, dass ein Fehler ausgelöst wird (oder ein NULL-Bereich für Range.getSpillParentOrNullObjectzurückgegeben wird).

Siehe auch