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
- Kopieren Sie Arbeitsblätter innerhalb einer Excel Arbeitsmappe mit C++
- Kopieren Sie Arbeitsblätter von einer Arbeitsmappe in eine andere
- Verschieben Sie das Arbeitsblatt mit C++ an eine andere Position
- Holen Sie sich eine kostenlose Lizenz
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.
- Laden Sie die Excel Datei mit der Klasse IWorkbook.
- Rufen Sie die Arbeitsblattsammlung mit der methode IWorkbook->GetIWorksheets() ab.
- Fügen Sie die Kopie des erforderlichen Arbeitsblatts mit IWorksheetCollection->AddCopy (intrusiveptrAspose::Cells::Systems::String sheetName) methode.
- Speichern Sie abschließend die Excel Datei mit IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String fileName) methode.
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.
- Laden Sie zunächst die Quell und Ziel-Excel Dateien mit der Klasse IWorkbook.
- Rufen Sie die Arbeitsblattsammlung der Quellarbeitsmappe mit der methode IWorkbook->GetIWorksheets() ab.
- Rufen Sie das zu kopierende Arbeitsblatt mit der methode IWorksheetCollection->GetObjectByIndex (Aspose::Cells::Systems::Int32 index) ab.
- Kopieren Sie das Arbeitsblatt mithilfe von IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index)->Copy (intrusiveptrAspose::Cells::IWorksheet sourceSheet) methode.
- Speichern Sie abschließend die Excel-Zieldatei mit IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String fileName) methode.
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.
- Laden Sie die Excel Datei mit der Klasse IWorkbook.
- Rufen Sie die Arbeitsblattsammlung mit der methode IWorkbook->GetIWorksheets() ab.
- Rufen Sie das zu verschiebende Arbeitsblatt mit der methode IWorksheetCollection->GetObjectByIndex (Aspose::Cells::Systems::Int32 index) ab.
- Verschieben Sie das Arbeitsblatt mit der methode IWorksheet->MoveTo (Aspose::Cells::Systems::Int32 index) an die gewünschte Position.
- Speichern Sie abschließend die Excel Datei mit IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String fileName) methode.
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.