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
- Wählen Sie die zu kopierende Zeile oder Spalte aus.
- Zum Kopieren von Zeilen oder Spalten klicken Sie auf Kopieren in der Standard-Symbolleiste oder drücken Sie STRG+C.
- Wählen Sie eine Zeile oder Spalte unterhalb oder rechts von der Position aus, an der Sie Ihre Auswahl kopieren möchten.
- 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
Beim Kopieren von Zeilen ist es wichtig, darauf hinzuweisen, dass damit verbundene Bilder, Diagramme oder andere Zeichenobjekte genauso wie bei Microsoft Excel behandelt werden:
- Wenn der Quellzeilenindex 5 beträgt, wird das Bild, Diagramm usw. kopiert, wenn es in den drei Zeilen enthalten ist (der Startzeilenindex ist 4 und der Endzeilenindex ist 6).
- Die vorhandenen Bilder, Diagramme usw. in der Zielzeile werden nicht entfernt.
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.
// 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.
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
// 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.
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); |