Ausschneiden, Kopieren und Einfügen von Bereichen mit der Excel-JavaScript-API
Dieser Artikel enthält Codebeispiele zum Ausschneiden, Kopieren und Einfügen von Bereichen mithilfe der Excel-JavaScript-API. Eine vollständige Liste der Eigenschaften und Methoden, die das Range
Objekt unterstützt, finden Sie unter Excel.Range-Klasse.
Hinweis
Die Excel-JavaScript-API beinhaltet keine auf „Zellen“ bezogenen Objekte oder Klassen. Stattdessen definiert die Excel-JavaScript-API alle Excel-Zellen als Objekte Range
. Eine einzelne Zelle in der Excel-Benutzeroberfläche wird in ein Objekt Range
mit einer Zelle der Excel-JavaScript-API übersetzt. Ein einzelnes Objekt Range
kann auch mehrere zusammenhängende Zellen beinhalten. Weitere Informationen finden Sie unter Arbeiten mit Zellen mithilfe der Excel-JavaScript-API.
Tipp
Wenn Sie in einem vollständigen Beispiel mit den AUSschneidenden, Kopieren und Einfügen-APIs aus diesem Artikel experimentieren möchten, öffnen Sie skriptbasiertes Lab in Excel, und wählen Sie Bereiche kopieren und einfügen in unserer Beispielbibliothek aus.
Copy and paste
Die Range.copyFrom-Methode repliziert die Kopier- und Einfügeaktionen der Excel-Benutzeroberfläche. Das Ziel ist das Range
Objekt, für das copyFrom
aufgerufen wird. Die zu kopierende Quelle wird als ein Bereich oder eine Zeichenfolgenadresse weitergegeben, die für einen Bereich steht.
Das folgende Codebeispiel kopiert die Daten aus A1:E1 in den Bereich ab G1 (aus dem letztendlich in G1:K1 eingefügt wird).
await Excel.run(async (context) => {
let sheet = context.workbook.worksheets.getItem("Sample");
// Copy everything from "A1:E1" into "G1" and the cells afterwards ("G1:K1").
sheet.getRange("G1").copyFrom("A1:E1");
await context.sync();
});
Range.copyFrom
weist drei optionale Parameter auf.
copyFrom(sourceRange: Range | RangeAreas | string, copyType?: Excel.RangeCopyType, skipBlanks?: boolean, transpose?: boolean): void;
copyType
gibt an, welche Daten aus der Quelle an das Ziel kopiert werden.
-
Excel.RangeCopyType.formulas
überträgt die Formeln in den Quellzellen und behält die relative Positionierung der Bereiche dieser Formeln bei. Alle Einträge ohne Formeln werden unverändert kopiert. -
Excel.RangeCopyType.values
kopiert die Datenwerte und, im Fall von Formeln, das Ergebnis der Formel. -
Excel.RangeCopyType.formats
kopiert die Formatierung des Bereichs, einschließlich Schriftart, Farbe und anderer Formateinstellungen, aber keine Werte. -
Excel.RangeCopyType.all
(Standardoption) kopiert sowohl Daten als auch Formatierungen, wobei die Formeln der Zellen beibehalten werden, falls sie gefunden werden.
skipBlanks
legt fest, ob leere Zellen in das Ziel kopiert wurden. Wenn „true“, überspringt copyFrom
leere Zellen im Quellbereich.
Ausgelassene Zellen überschreiben die vorhandenen Daten ihrer entsprechenden Zellen im Zielbereich nicht. Der Standardwert ist „false“.
transpose
bestimmt, ob die Daten transponiert werden oder nicht, d. h. die Zeilen und Spalten werden getauscht am Quellspeicherort.
Ein transponierter Bereich wird entlang der Hauptdiagonalen umgekehrt, sodass die Zeilen 1, 2 und 3 zu den Spalten A, B und C werden.
Das folgende Codebeispiel und die folgenden Bilder veranschaulichen dieses Verhalten in einem einfachen Szenario.
await Excel.run(async (context) => {
let sheet = context.workbook.worksheets.getItem("Sample");
// Copy a range, omitting the blank cells so existing data is not overwritten in those cells.
sheet.getRange("D1").copyFrom("A1:C1",
Excel.RangeCopyType.all,
true, // skipBlanks
false); // transpose
// Copy a range, including the blank cells which will overwrite existing data in the target cells.
sheet.getRange("D2").copyFrom("A2:C2",
Excel.RangeCopyType.all,
false, // skipBlanks
false); // transpose
await context.sync();
});
Daten vor dem Kopieren und Einfügen des Bereichs
Daten nach dem Kopieren und Einfügen des Bereichs
Zellen ausschneiden und einfügen (verschieben)
Die Range.moveTo-Methode verschiebt Zellen an eine neue Position in der Arbeitsmappe. Dieses Verhalten der Zellverschiebung funktioniert genauso wie beim Verschieben von Zellen durch Ziehen des Bereichsrahmens oder beim Ausführen der Aktionen Ausschneiden und Einfügen . Sowohl die Formatierung als auch die Werte des Bereichs werden an die als destinationRange
Parameter angegebene Position verschoben.
Im folgenden Codebeispiel wird ein Bereich mit der Range.moveTo
-Methode verschoben. Beachten Sie, dass, wenn der Zielbereich kleiner als die Quelle ist, er erweitert wird, um den Quellinhalt einzuschließen.
await Excel.run(async (context) => {
let sheet = context.workbook.worksheets.getActiveWorksheet();
sheet.getRange("F1").values = [["Moved Range"]];
// Move the cells "A1:E1" to "G1" (which fills the range "G1:K1").
sheet.getRange("A1:E1").moveTo("G1");
await context.sync();
});
Siehe auch
Office Add-ins