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.getSpillParentOrNullObject
zurückgegeben wird).
Siehe auch
Office Add-ins