Zellen in Excel Tabellen kopieren mit C# (IronXL, kein Interop)
IronXL ermöglicht das Kopieren von Zellen, Bereichen, Zeilen oder Spalten in Excel-Tabellen mithilfe einer einzigen Methode Copy, die die gesamte Formatierung und den Stil beibehält und gleichzeitig Daten zwischen beliebigen Orten oder Arbeitsblättern dupliziert.
Die Funktion "Zelle kopieren" dupliziert Zellinhalte und fügt sie in andere Zellen ein. Sie repliziert Daten, Formeln, Formatierungen und andere Attribute innerhalb des Arbeitsblatts. Whether creating spreadsheets from scratch or loading existing Excel files, the copy functionality is essential for efficient data manipulation.
Schnellstart: Eine Spalte oder einen Bereich in einer Zeile kopieren
Kopieren ganzer Bereiche - einzelne Zellen, Zeilen, Spalten oder Blöcke - von einem Blatt in ein anderes mit einem einzigen Methodenaufruf. Die Funktion Copy erhält Stil und Formatierung und macht die Excel-Automatisierung schnell und einfach.
-
Installieren Sie IronXL mit NuGet Package Manager
PM > Install-Package IronXL.Excel -
Kopieren Sie diesen Codeausschnitt und führen Sie ihn aus.
workSheet.GetColumn(0).Copy(workBook.GetWorkSheet("Sheet1"), "H1"); -
Bereitstellen zum Testen in Ihrer Live-Umgebung
Beginnen Sie noch heute, IronXL in Ihrem Projekt zu verwenden, mit einer kostenlosen Testversion
Minimaler Arbeitsablauf (5 Schritte)
- Download der C#-Bibliothek zum Kopieren von Zellen
- Laden Sie die vorhandene Excel-Tabelle
- Wählen Sie den Bereich, die Zeile oder die Spalte aus, die Sie kopieren möchten
- Invoke the `Copy` method on the selected range
- Pass a destination worksheet and position to the `Copy` method
Wie kann ich eine einzelne Zelle in Excel kopieren?
Um den Inhalt einer ausgewählten Zelle zu kopieren, verwenden Sie die Methode Copy. Übergeben Sie das Arbeitsblattobjekt als ersten Parameter und die Startposition als zweiten Parameter. The Copy method retains all styling including font and size, background patterns and colors, and borders and alignment.
:path=/static-assets/excel/content-code-examples/how-to/copy-cells-copy-single-cell.cs
using IronXL;
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");
// Copy cell content
workSheet["A1"].Copy(workBook.GetWorkSheet("Sheet1"), "B3");
workBook.SaveAs("copySingleCell.xlsx");
using IronXL;
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");
// Copy cell content
workSheet["A1"].Copy(workBook.GetWorkSheet("Sheet1"), "B3");
workBook.SaveAs("copySingleCell.xlsx");
using IronXL;
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");
// Copy cell content
workSheet["A1"].Copy(workBook.GetWorkSheet("Sheet1"), "B3");
workBook.SaveAs("copySingleCell.xlsx");
Imports IronXL
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")
Dim workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")
' Copy cell content
workSheet("A1").Copy(workBook.GetWorkSheet("Sheet1"), "B3")
workBook.SaveAs("copySingleCell.xlsx")
Welche Formatierung wird beim Kopieren beibehalten?
Die Methode Copy erhält alle Zelleneigenschaften, einschließlich:
CellWerte und Formeln- Zahlenformate (Währung, Prozent, Datum)
- Schriftgestaltung (Schriftart, Größe, Fettdruck, Kursivdruck, Farbe)
- Zellränder und Hintergrundfarben
- Textausrichtung (horizontal und vertikal)
- Einstellungen für den Zellschutz
Diese umfassende Bewahrung stellt sicher, dass kopierte Zellen ihr ursprüngliches Aussehen und ihre Funktionalität behalten, ähnlich wie bei der Verwendung von Strg+C und Strg+V in Microsoft Excel.
Warum benötigt die Copy-Methode zwei Parameter?
Die Copy Methode benötigt zwei Parameter für eine präzise Steuerung:
- Arbeitsblatt-Parameter: Gibt das Ziel-Arbeitsblatt an (dasselbe oder ein anderes innerhalb der Arbeitsmappe)
- Adressparameter: Definiert die Startposition der Zelle für den eingefügten Inhalt
Dieses Design ermöglicht flexibles Kopieren innerhalb desselben Blattes oder zwischen verschiedenen Blättern, ideal für die Erstellung von zusammenfassenden Berichten oder die Konsolidierung von Daten aus mehreren Quellen.
Wann sollte ich Einzelzellenkopie vs. Bereichskopie verwenden?
Wählen Sie eine einzellige Kopie, wenn:
- Duplizieren einzelner Werte oder Formeln
- Kopieren von Kopfzellen oder Beschriftungen
- Replizieren bestimmter berechneter Ergebnisse
- Arbeiten mit Summenwerten
Verwenden Sie Range Copy, wenn:
- Verschieben ganzer Datentabellen
- Duplizieren mehrerer verwandter Zellen
- Kopieren ganzer Zeilen oder Spalten
- Beibehaltung der Datenbeziehungen
Wie kann ich mehrere Zellen oder Bereiche kopieren?
Like the Clear method, Copy is available in the Range class, allowing execution on any range size. When selecting ranges, IronXL provides flexible copying options:
-
Kopiere eine einzelne Zelle (
C10) :workSheet["C10"].Copy(workBook.GetWorkSheet("Sheet1"), "B13");workSheet["C10"].Copy(workBook.GetWorkSheet("Sheet1"), "B13");workSheet("C10").Copy(workBook.GetWorkSheet("Sheet1"), "B13")$vbLabelText $csharpLabel -
Spalte kopieren (
A) :workSheet.GetColumn(0).Copy(workBook.GetWorkSheet("Sheet1"), "H1");workSheet.GetColumn(0).Copy(workBook.GetWorkSheet("Sheet1"), "H1");workSheet.GetColumn(0).Copy(workBook.GetWorkSheet("Sheet1"), "H1")$vbLabelText $csharpLabel -
Kopiere eine Zeile (
4) :workSheet.GetRow(3).Copy(workBook.GetWorkSheet("Sheet1"), "A15");workSheet.GetRow(3).Copy(workBook.GetWorkSheet("Sheet1"), "A15");workSheet.GetRow(3).Copy(workBook.GetWorkSheet("Sheet1"), "A15")$vbLabelText $csharpLabel -
Kopiere einen zweidimensionalen Bereich (
D6:F8) :workSheet["D6:F8"].Copy(workBook.GetWorkSheet("Sheet1"), "H17");workSheet["D6:F8"].Copy(workBook.GetWorkSheet("Sheet1"), "H17");workSheet("D6:F8").Copy(workBook.GetWorkSheet("Sheet1"), "H17")$vbLabelText $csharpLabel
)}]
:path=/static-assets/excel/content-code-examples/how-to/copy-cells-copy-cell-range.cs
using IronXL;
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");
// Copy a single cell(C10)
workSheet["C10"].Copy(workBook.GetWorkSheet("Sheet1"), "B13");
// Copy a column(A)
workSheet.GetColumn(0).Copy(workBook.GetWorkSheet("Sheet1"), "H1");
// Copy a row(4)
workSheet.GetRow(3).Copy(workBook.GetWorkSheet("Sheet1"), "A15");
// Copy a two-dimensional range(D6:F8)
workSheet["D6:F8"].Copy(workBook.GetWorkSheet("Sheet1"), "H17");
workBook.SaveAs("copyCellRange.xlsx");
using IronXL;
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");
// Copy a single cell(C10)
workSheet["C10"].Copy(workBook.GetWorkSheet("Sheet1"), "B13");
// Copy a column(A)
workSheet.GetColumn(0).Copy(workBook.GetWorkSheet("Sheet1"), "H1");
// Copy a row(4)
workSheet.GetRow(3).Copy(workBook.GetWorkSheet("Sheet1"), "A15");
// Copy a two-dimensional range(D6:F8)
workSheet["D6:F8"].Copy(workBook.GetWorkSheet("Sheet1"), "H17");
workBook.SaveAs("copyCellRange.xlsx");
using IronXL;
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");
// Copy a single cell(C10)
workSheet["C10"].Copy(workBook.GetWorkSheet("Sheet1"), "B13");
// Copy a column(A)
workSheet.GetColumn(0).Copy(workBook.GetWorkSheet("Sheet1"), "H1");
// Copy a row(4)
workSheet.GetRow(3).Copy(workBook.GetWorkSheet("Sheet1"), "A15");
// Copy a two-dimensional range(D6:F8)
workSheet["D6:F8"].Copy(workBook.GetWorkSheet("Sheet1"), "H17");
workBook.SaveAs("copyCellRange.xlsx");
Imports IronXL
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")
Dim workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")
' Copy a single cell(C10)
workSheet("C10").Copy(workBook.GetWorkSheet("Sheet1"), "B13")
' Copy a column(A)
workSheet.GetColumn(0).Copy(workBook.GetWorkSheet("Sheet1"), "H1")
' Copy a row(4)
workSheet.GetRow(3).Copy(workBook.GetWorkSheet("Sheet1"), "A15")
' Copy a two-dimensional range(D6:F8)
workSheet("D6:F8").Copy(workBook.GetWorkSheet("Sheet1"), "H17")
workBook.SaveAs("copyCellRange.xlsx")
Was passiert, wenn der Zielbereich zu klein ist?
IronXL gleicht Größenunterschiede automatisch aus:
- Der Zielparameter gibt nur die linke obere Startzelle an
- Der gesamte Quellbereich wird unabhängig von der Zielgröße kopiert
- Vorhandene Daten im Zielbereich werden überschrieben
- Der Kopiervorgang wird erweitert, um alle Quelldaten aufzunehmen
Wenn man beispielsweise einen 3x3-Bereich in die Zelle B1 kopiert, werden die Zellen B1:D3 gefüllt, wobei alle vorhandenen Inhalte überschrieben werden.
Wie funktionieren Zeilen- und Spaltenverweise?
IronXL verwendet nullbasierte Indizierung für Zeilen und Spalten mit den Methoden GetRow() und GetColumn():
GetColumn(0)bezieht sich auf Spalte AGetColumn(1)bezieht sich auf Spalte BGetRow(0)bezieht sich auf Zeile 1GetRow(3)bezieht sich auf Zeile 4
Diese Indizierung entspricht den Standard-C#-Array-Konventionen.
Warum die Methoden GetColumn() und GetRow() verwenden?
Die Methoden GetColumn() und GetRow() bieten:
- Leistung: Effizienter für ganze Zeilen oder Spalten
- Klarheit: Macht die Absicht des Codes klarer
- Flexibilität: Gibt ein
Range-Objekt zurück, das alle Bereichsoperationen unterstützt. - Bequemlichkeit: Keine Notwendigkeit, Endzellen für vollständige Auswahlen zu berechnen
Diese Methoden eignen sich hervorragend für die Erstellung von Berichten, die vollständige Spaltenkopien erfordern, oder für das Duplizieren von Zeilenvorlagen.
Wie kann ich Zellen zwischen verschiedenen Arbeitsblättern kopieren?
Der erste Parameter akzeptiert ein Arbeitsblatt-Objekt, das das Kopieren und Einfügen auf verschiedenen Arbeitsblättern ermöglicht. Übergeben Sie ein anderes Arbeitsblattobjekt als ersten Parameter. This functionality proves essential when managing multiple worksheets or creating summary sheets from detailed data.
workBook.GetWorksheet("Sheet2"):path=/static-assets/excel/content-code-examples/how-to/copy-cells-copy-to-other-worksheet.cs
using IronXL;
WorkBook workBook = WorkBook.Load("multisheet.xlsx");
WorkSheet sheet1 = workBook.GetWorkSheet("Sheet1");
WorkSheet sheet2 = workBook.GetWorkSheet("Sheet2");
// Copy entire data range from Sheet1 to Sheet2
sheet1["A1:D10"].Copy(sheet2, "A1");
// Copy with formulas intact
sheet1["E1:E10"].Copy(sheet2, "F1");
// Copy formatting from template sheet
WorkSheet templateSheet = workBook.GetWorkSheet("Template");
templateSheet["A1:Z1"].Copy(sheet2, "A15");
workBook.SaveAs("crossSheetCopy.xlsx");
using IronXL;
WorkBook workBook = WorkBook.Load("sample.xlsx");
WorkSheet workSheet = workBook.GetWorkSheet("Sheet1");
// Copy cell content
workSheet["A1"].Copy(workBook.GetWorkSheet("Sheet2"), "B3");
workBook.SaveAs("copyAcrossWorksheet.xlsx");
using IronXL;
WorkBook workBook = WorkBook.Load("multisheet.xlsx");
WorkSheet sheet1 = workBook.GetWorkSheet("Sheet1");
WorkSheet sheet2 = workBook.GetWorkSheet("Sheet2");
// Copy entire data range from Sheet1 to Sheet2
sheet1["A1:D10"].Copy(sheet2, "A1");
// Copy with formulas intact
sheet1["E1:E10"].Copy(sheet2, "F1");
// Copy formatting from template sheet
WorkSheet templateSheet = workBook.GetWorkSheet("Template");
templateSheet["A1:Z1"].Copy(sheet2, "A15");
workBook.SaveAs("crossSheetCopy.xlsx");
Imports IronXL
Dim workBook As WorkBook = WorkBook.Load("sample.xlsx")
Dim workSheet As WorkSheet = workBook.GetWorkSheet("Sheet1")
' Copy cell content
workSheet("A1").Copy(workBook.GetWorkSheet("Sheet2"), "B3")
workBook.SaveAs("copyAcrossWorksheet.xlsx")
Dim workBook2 As WorkBook = WorkBook.Load("multisheet.xlsx")
Dim sheet1 As WorkSheet = workBook2.GetWorkSheet("Sheet1")
Dim sheet2 As WorkSheet = workBook2.GetWorkSheet("Sheet2")
' Copy entire data range from Sheet1 to Sheet2
sheet1("A1:D10").Copy(sheet2, "A1")
' Copy with formulas intact
sheet1("E1:E10").Copy(sheet2, "F1")
' Copy formatting from template sheet
Dim templateSheet As WorkSheet = workBook2.GetWorkSheet("Template")
templateSheet("A1:Z1").Copy(sheet2, "A15")
workBook2.SaveAs("crossSheetCopy.xlsx")
Was sind häufige arbeitsblattübergreifende Kopierszenarien?
Arbeitsblattübergreifendes Kopieren dient häufig diesen Szenarien:
- Erstellen von Übersichtsblättern: Kopieren von Schlüsselmetriken aus Detailblättern in Dashboards
- Vorlagenreplikation: Kopieren von formatierten Vorlagen auf neue Arbeitsblätter
- Datenkonsolidierung: Sammeln von Daten aus Abteilungsblättern in Masterblättern
- Berichterstellung: Kopieren gefilterter Ergebnisse in separate Arbeitsblätter für Berichte
- Backup-Vorgänge: Kritische Daten in Sicherungsblätter duplizieren
When working with formulas that reference other cells, IronXL automatically adjusts relative references based on the new location while maintaining absolute references.
Wann sollte ich auf ein neues Arbeitsblatt kopieren und wann auf ein bestehendes?
Kopieren Sie in ein neues Arbeitsblatt, wenn:
- Erstellung regelmäßiger Berichte (täglich, wöchentlich, monatlich)
- Isolierung verarbeiteter Daten von Rohdaten
- Erstellen von Analyse-Arbeitsblättern aus Quelldaten
- Generierung von benutzerspezifischen Datenansichten
Kopieren Sie in ein bestehendes Arbeitsblatt, wenn:
- Anhängen von Daten an laufende Protokolle
- Aktualisierung von Dashboard-Abschnitten
- Konsolidierung mehrerer Datenquellen
- Pflege der historischen Aufzeichnungen
For complex scenarios involving multiple sheets, consider using IronXL's ability to work with DataSets and DataTables for sophisticated data manipulation.
Wie behandelt man Arbeitsblatt-Namenskonflikte?
Achten Sie beim Kopieren zwischen Arbeitsblättern auf eine korrekte Arbeitsblattverwaltung:
// Check if worksheet exists before copying
if (workBook.GetWorkSheet("TargetSheet") == null)
{
workBook.CreateWorkSheet("TargetSheet");
}
// Safe copy operation
WorkSheet targetSheet = workBook.GetWorkSheet("TargetSheet");
sourceSheet["A1:Z100"].Copy(targetSheet, "A1");
// Check if worksheet exists before copying
if (workBook.GetWorkSheet("TargetSheet") == null)
{
workBook.CreateWorkSheet("TargetSheet");
}
// Safe copy operation
WorkSheet targetSheet = workBook.GetWorkSheet("TargetSheet");
sourceSheet["A1:Z100"].Copy(targetSheet, "A1");
' Check if worksheet exists before copying
If workBook.GetWorkSheet("TargetSheet") Is Nothing Then
workBook.CreateWorkSheet("TargetSheet")
End If
' Safe copy operation
Dim targetSheet As WorkSheet = workBook.GetWorkSheet("TargetSheet")
sourceSheet("A1:Z100").Copy(targetSheet, "A1")
Dieser Ansatz verhindert Laufzeitfehler und gewährleistet erfolgreiche Kopiervorgänge, was besonders wichtig ist, wenn Excel-Prozesse in Produktionsumgebungen automatisiert werden.
Häufig gestellte Fragen
Wie kopiere ich eine einzelne Zelle in Excel mit C#?
Mit IronXL können Sie eine einzelne Zelle mit der Kopiermethode kopieren. Wählen Sie einfach die Zelle aus, die Sie kopieren möchten (z. B. workSheet["A1"]) und rufen Sie die Copy-Methode auf, wobei Sie das Zielarbeitsblatt und die Adresse der Zielzelle als Parameter übergeben. IronXL behält während des Kopiervorgangs alle Formatierungen wie Schriftarten, Farben, Rahmen und Formeln bei.
Welche Formatierung wird beim Kopieren von Zellen beibehalten?
Bei der Kopiermethode von IronXL bleiben alle Zelleigenschaften erhalten, einschließlich Zellwerte und Formeln, Zahlenformate (Währung, Prozentsatz, Datum), Schriftart (Schriftart, Größe, fett, kursiv, Farbe), Zellränder und Hintergrundfarben, Textausrichtung (horizontal und vertikal) und Zellschutzeinstellungen. Dadurch wird sichergestellt, dass kopierte Zellen ihr ursprüngliches Aussehen und ihre Funktionalität behalten.
Kann ich ganze Spalten oder Bereiche auf einmal kopieren?
Ja, IronXL ermöglicht es Ihnen, ganze Spalten, Zeilen oder Bereiche in einem einzigen Vorgang zu kopieren. Sie können Methoden wie GetColumn(0).Copy() verwenden, um eine ganze Spalte zu kopieren, oder einen Bereich von Zellen auswählen, um mehrere Zellen auf einmal zu kopieren. Die Copy-Methode funktioniert mit jeder Auswahlgröße, von einzelnen Zellen bis zu ganzen Arbeitsblättern.
Wie kann ich Zellen zwischen verschiedenen Arbeitsblättern kopieren?
IronXL macht es einfach, Zellen zwischen Arbeitsblättern zu kopieren. Wenn Sie die Copy-Methode verwenden, geben Sie das Zielarbeitsblatt als ersten Parameter an (z. B. workBook.GetWorkSheet("Sheet2")) und die Adresse der Zielzelle als zweiten Parameter. Auf diese Weise können Sie Daten zwischen verschiedenen Arbeitsblättern innerhalb derselben Arbeitsmappe kopieren.
Was sind die Mindestschritte, die zum Kopieren von Zellen in Excel erforderlich sind?
Mit IronXL erfordert das Kopieren von Zellen nur 5 Schritte: 1) Laden Sie die IronXL.C#-Bibliothek herunter, 2) Laden Sie Ihr bestehendes Excel-Arbeitsblatt, 3) Wählen Sie den Bereich, die Zeile oder die Spalte aus, die Sie kopieren möchten, 4) Rufen Sie die Copy-Methode für den ausgewählten Bereich auf, und 5) Übergeben Sie der Copy-Methode ein Zielarbeitsblatt und eine Position. Der gesamte Vorgang kann in einer einzigen Codezeile ausgeführt werden.

