Kopieren von Zeilen und Spalten

Einführung

Manchmal müssen Sie Zeilen und Spalten in einem Arbeitsblatt kopieren, ohne das gesamte Arbeitsblatt zu kopieren. Mit Aspose.Cells ist es möglich, Zeilen und Spalten innerhalb oder zwischen Arbeitsmappen zu kopieren.

Wenn eine Zeile (oder Spalte) kopiert wird, werden auch die darin enthaltenen Daten, einschließlich Formeln - mit aktualisierten Verweisen - und Werten, Kommentare, Formatierungen, versteckte Zellen, Bilder und andere Zeichenobjekte ebenfalls kopiert.

Kopieren von Zeilen und Spalten mit Microsoft Excel

  1. Wählen Sie die zu kopierende Zeile oder Spalte aus.
  2. Zum Kopieren von Zeilen oder Spalten klicken Sie auf Kopieren in der Standard-Symbolleiste oder drücken Sie STRG+C.
  3. Wählen Sie eine Zeile oder Spalte unterhalb oder rechts von der Position aus, an der Sie Ihre Auswahl kopieren möchten.
  4. Beim Kopieren von Zeilen oder Spalten klicken Sie auf Kopierte Zellen im Einfügen-Menü.

Kopieren einer einzelnen Zeile

Aspose.Cells bietet die copyRow Methode der Cells Klasse. Diese Methode kopiert alle Arten von Daten einschließlich Formeln, Werten, Kommentaren, Zellformaten, versteckten Zellen, Bildern und anderen Zeichenobjekten von der Quellzeile zur Zielzeile.

Die copyRow Methode akzeptiert die folgenden Parameter:

  • das Quell Cells Objekt,
  • den Index der Quellzeile, und
  • den Index der Zielzeile.

Verwenden Sie diese Methode, um eine Zeile innerhalb eines Arbeitsblatts oder in ein anderes Arbeitsblatt zu kopieren. Die copyRow Methode funktioniert ähnlich wie Microsoft Excel. So müssen Sie zum Beispiel nicht explizit die Höhe der Zielzeile festlegen, dieser Wert wird ebenfalls kopiert.

Das folgende Beispiel zeigt, wie eine Zeile in einem Arbeitsblatt kopiert wird. Es wird eine Vorlagen-Excel-Datei verwendet, und die zweite Zeile (vollständig mit Daten, Formatierung, Kommentaren, Bildern usw.) wird in die 12. Zeile im selben Arbeitsblatt eingefügt.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(CopyingRows.class) + "rows_cloumns/";
// Create a new Workbook.
Workbook excelWorkbook = new Workbook(dataDir + "book1.xls");
// Get the first worksheet in the workbook.
Worksheet wsTemplate = excelWorkbook.getWorksheets().get(0);
// Copy the second row with data, formating, images and drawing objects to the 12th row in the worksheet.
wsTemplate.getCells().copyRow(wsTemplate.getCells(), 2, 10);
// Save the excel file.
excelWorkbook.save(dataDir + "CopyingRows_out.xls");
// Print message
System.out.println("Row and Column copied successfully.");

Die folgende Ausgabe wird generiert, wenn der unten stehende Code ausgeführt wird.

Die Zeile wird mit höchster Präzision und Genauigkeit kopiert

todo:image_alt_text

Mehrere Zeilen kopieren

Sie können auch mehrere Zeilen auf ein neues Ziel kopieren und dabei die Cells.copyRows Methode verwenden, die einen zusätzlichen Parameter vom Typ Integer akzeptiert, um die Anzahl der zu kopierenden Quellzeilen anzugeben.

Nachfolgend sehen Sie einen Ausschnitt des Eingabe-Arbeitsblatts mit 3 Zeilen Daten. Der unten stehende Codeausschnitt kopiert alle 3 Zeilen an einen neuen Ort, beginnend mit der 7. Zeile.

todo:image_alt_text

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getDataDir(CopyingMultipleRows.class);
// Create an instance of Workbook class by loading the existing spreadsheet
Workbook workbook = new Workbook(dataDir + "aspose-sample.xlsx");
// Get the cells collection of worksheet by name Rows
Cells cells = workbook.getWorksheets().get("Rows").getCells();
// Copy the first 3 rows to 7th row
cells.copyRows(cells, 0, 6, 3);
// Save the result on disc
workbook.save(dataDir + "output.xlsx");

Hier ist die resultierende Ansicht des Arbeitsblatts nach Ausführung des obigen Codeausschnitts.

todo:image_alt_text

Einzelne Spalte kopieren

Aspose.Cells bietet die copyColumn Methode der Cells Klasse, diese Methode kopiert alle Arten von Daten, einschließlich Formeln - mit aktualisierten Referenzen - und Werten, Kommentaren, Zellformaten, versteckten Zellen, Bildern und anderen Zeichenobjekten von der Quellspalte zur Zielspalte.

Die copyColumn Methode akzeptiert die folgenden Parameter:

  • das Quell Cells Objekt,
  • Quellspaltenindex, und
  • der Zielspaltenindex.

Verwenden Sie die copyColumn Methode, um eine Spalte innerhalb eines Arbeitsblatts oder in ein anderes Arbeitsblatt zu kopieren.

Dieses Beispiel kopiert eine Spalte aus einem Arbeitsblatt und fügt sie in ein Arbeitsblatt in einer anderen Arbeitsmappe ein.

Eine Spalte wird von einer Arbeitsmappe in eine andere kopiert

todo:image_alt_text

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getSharedDataDir(CopyingColumns.class) + "rows_cloumns/";
// Create a new Workbook.
Workbook excelWorkbook = new Workbook(dataDir + "book1.xls");
// Get the first worksheet in the workbook.
Worksheet wsTemplate = excelWorkbook.getWorksheets().get(0);
// Copy the first column from the first worksheet of the first workbook into the first worksheet of the second workbook.
wsTemplate.getCells().copyColumn(wsTemplate.getCells(), 1, 4);
// Save the excel file.
excelWorkbook.save(dataDir + "CopyingColumns_out.xls");
// Print message
System.out.println("Row and Column copied successfully.");

Mehrere Spalten kopieren

Ähnlich wie die Cells.copyRows-Methode bieten die Aspose.Cells-APIs auch die Cells.copyColumns-Methode, um mehrere Quellspalten an eine neue Position zu kopieren.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// The path to the documents directory.
String dataDir = Utils.getDataDir(CopyingMultipleColumns.class);
// Create an instance of Workbook class by loading the existing spreadsheet
Workbook workbook = new Workbook(dataDir + "aspose-sample.xlsx");
// Get the cells collection of worksheet by name Columns
Cells cells = workbook.getWorksheets().get("Columns").getCells();
// Copy the first 3 columns 7th column
cells.copyColumns(cells, 0, 6, 3);
// Save the result on disc
workbook.save(dataDir + "output.xlsx");

Hier sehen Sie, wie die Quell- und Ergebnis-Arbeitsblätter in Excel aussehen.

todo:image_alt_text

todo:image_alt_text

Zeilen/Spalten mit Einfügeoptionen einfügen

Aspose.Cells bietet nun PasteOptions während der Verwendung der Funktionen CopyRows und CopyColumns. Es ermöglicht das Festlegen entsprechender Einfügeoptionen ähnlich wie in Excel.

// For complete examples and data files, please go to https://github.com/aspose-cells/Aspose.Cells-for-Java
// Load some excel file
Workbook wb = new Workbook("book1.xlsx");
// Access the first sheet which contains chart
Worksheet source = wb.getWorksheets().get(0);
// Add another sheet named DestSheet
Worksheet destination = wb.getWorksheets().add("DestSheet");
// Set CopyOptions.ReferToDestinationSheet to true
CopyOptions options = new CopyOptions();
options.setReferToDestinationSheet(true);
// Set PasteOptions
PasteOptions pasteOptions = new PasteOptions();
pasteOptions.setPasteType(PasteType.VALUES);
pasteOptions.setOnlyVisibleCells(true);
// Copy all the rows of source worksheet to destination worksheet which includes chart as well
// The chart data source will now refer to DestSheet
destination.getCells().copyRows(source.getCells(), 0, 0, source.getCells().getMaxDisplayRange().getRowCount(), options, pasteOptions);
// Save workbook in xlsx format
wb.save("destination.xlsx", SaveFormat.XLSX);