Kopieren oder verschieben Sie Excel-Arbeitsblätter

Excel Dateien werden zur Verwaltung komplexer Daten wie Abteilungsbudgets oder Jahresumsatzberichte verwendet. Es kann Situationen geben, in denen Sie eine fertige Vorlage haben, die Sie zum Erstellen eines Berichts verwenden möchten. Dazu können Sie eine Kopie des Vorlagenarbeitsblatts erstellen. Möglicherweise müssen Sie auch die Arbeitsblätter organisieren, um den Datenfluss zu demonstrieren. Für solche Fälle können Sie die Arbeitsblätter entsprechend Ihren Anforderungen neu anordnen. Vor diesem Hintergrund lernen Sie, wie Sie Arbeitsblätter programmgesteuert mit C++ kopieren und verschieben.

C++-API zum Kopieren oder Verschieben von Excel Arbeitsblättern

Aspose.Cells for C++ ist eine native C++ Bibliothek, mit der Sie Excel Dateien erstellen, lesen und aktualisieren können, ohne dass Microsoft Excel installiert sein muss. Die API unterstützt auch das Kopieren und Verschieben von Excel Arbeitsblättern. Sie können die API entweder über NuGet installieren oder direkt aus dem Abschnitt Downloads herunterladen.

PM> Install-Package Aspose.Cells.Cpp

Kopieren Sie Arbeitsblätter innerhalb einer Excel Arbeitsmappe mit C++

Im Folgenden sind die Schritte zum Kopieren von Arbeitsblättern innerhalb einer Excel Arbeitsmappe aufgeführt.

Im Folgenden finden Sie den Beispielcode zum Kopieren eines Arbeitsblatts in einer Excel Arbeitsmappe mit C++.

// Quellverzeichnispfad.
StringPtr srcDir = new String("SourceDirectory\\");

// Verzeichnispfad ausgeben.
StringPtr outDir = new String("OutputDirectory\\");

// Laden Sie die Excel Datei
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// Arbeitsblätter abrufen
intrusive_ptr<IWorksheetCollection> sheets = workbook->GetIWorksheets();

// Kopieren Sie Daten aus einem vorhandenen Blatt in der Arbeitsmappe in ein neues Blatt.
sheets->AddCopy(new String("Sheet1"));

// Speichern Sie die Excel Datei
workbook->Save(outDir->StringAppend(new String("Sample1_out.xlsx")));

Kopieren Sie Arbeitsblätter von einer Arbeitsmappe in eine andere

Mit Aspose.Cells for C++ können Sie auch Arbeitsblätter zwischen zwei Excel Dateien kopieren. Im Folgenden finden Sie die Schritte zum Kopieren eines Arbeitsblatts von einer Excel Datei in eine andere.

Im Folgenden finden Sie den Beispielcode zum Kopieren eines Arbeitsblatts von einer Excel Arbeitsmappe in eine andere mit C++.

// Quellverzeichnispfad.
StringPtr srcDir = new String("SourceDirectory\\");

// Verzeichnispfad ausgeben.
StringPtr outDir = new String("OutputDirectory\\");

// Laden Sie die Excel quelldatei
intrusive_ptr<IWorkbook> sourceWorkbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// Laden Sie die Excel-Zieldatei
intrusive_ptr<IWorkbook> destinationWorkbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("book1.xlsx")));

// Rufen Sie die Arbeitsblätter der Quellarbeitsmappe ab
intrusive_ptr<IWorksheetCollection> sheets = sourceWorkbook->GetIWorksheets();

// Rufen Sie das Arbeitsblatt ab, das Sie kopieren möchten
intrusive_ptr<IWorksheet> worksheet = sheets->GetObjectByIndex(0);

// Kopieren Sie das zuvor abgerufene Arbeitsblatt in die neue Arbeitsmappe
destinationWorkbook->GetIWorksheets()->GetObjectByIndex(0)->Copy(worksheet);

// Speichern Sie die Excel Datei
destinationWorkbook->Save(outDir->StringAppend(new String("book1_out.xlsx")));

Verschieben Sie das Arbeitsblatt mit C++ an eine andere Position

Im Folgenden finden Sie die Schritte zum Ändern der Position des Arbeitsblatts in einer Excel Arbeitsmappe.

Im Folgenden finden Sie den Beispielcode zum Verschieben des Arbeitsblatts an eine andere Position innerhalb derselben Arbeitsmappe mit C++.

// Quellverzeichnispfad.
StringPtr srcDir = new String("SourceDirectory\\");

// Verzeichnispfad ausgeben.
StringPtr outDir = new String("OutputDirectory\\");

// Laden Sie die Excel Datei
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("Sample1.xlsx")));

// Arbeitsblätter abrufen
intrusive_ptr<IWorksheetCollection> sheets = workbook->GetIWorksheets();

// Greifen Sie auf das erste Blatt zu
intrusive_ptr<IWorksheet> sheet = sheets->GetObjectByIndex(0);

// Verschieben Sie das erste Blatt an die zweite Position in der Arbeitsmappe.
sheet->MoveTo(1);

// Speichern Sie die Excel Datei
workbook->Save(outDir->StringAppend(new String("Sample1_out.xlsx")));

Holen Sie sich eine kostenlose Lizenz

Sie können die API ohne Evaluierungseinschränkungen testen, indem Sie eine kostenlose temporäre Lizenz anfordern.

Fazit

In diesem Artikel haben Sie gelernt, wie Sie Arbeitsblätter innerhalb derselben Excel Arbeitsmappe oder zwischen verschiedenen Arbeitsmappen kopieren. Außerdem haben Sie gesehen, wie Sie die Position des Arbeitsblatts innerhalb einer Excel Datei ändern können. Aspose.Cells for C++ bietet viele weitere Funktionen für die Arbeit mit Excel Dateien, die Sie in der offiziellen Dokumentation erkunden können. Bei Fragen können Sie uns gerne in unserem kostenlosen Support-Forum erreichen.

Siehe auch