Das Verbinden und Trennen von Zellen ist eine einfache und häufig verwendete Funktion von Microsoft Excel. Das Zusammenführen von Zellen kann sich in Szenarien als hilfreich erweisen, beispielsweise wenn Sie ein Arbeitsblatt mit mehreren Spalten haben, die dieselbe Überschrift haben. Sie können die Zellen über den Spalten zusammenführen, um ihnen eine gemeinsame Überschrift zu geben. Falls verbundene Zellen nicht mehr benötigt werden, können Sie sie genauso einfach wieder aufheben. Möglicherweise müssen Sie diese Aufgaben in Ihren C++ Anwendungen ausführen. In diesem Artikel erfahren Sie, wie Sie Zellen in Excel Arbeitsblättern programmgesteuert mit C++ zusammenführen und trennen.
- C++-API zum Zusammenführen und Trennen von Zellen
- Zellen in einem Excel-Arbeitsblatt mit C++ zusammenführen
- Trennen Sie Zellen in einem Excel-Arbeitsblatt mit C++
- Führen Sie einen Zellbereich in einem Excel-Arbeitsblatt mit C++ zusammen
- Trennen Sie einen Zellbereich in einem Excel-Arbeitsblatt mit C++
- Zellen eines benannten Bereichs in einem Excel-Arbeitsblatt mit C++ zusammenführen
C++-API zum Zusammenführen und Trennen von Zellen
Aspose.Cells for C++ ist eine native C++ Bibliothek, mit der Sie Excel Dateien erstellen, lesen und ändern können, ohne dass Microsoft Excel installiert sein muss. Die API unterstützt auch das Zusammenführen und Trennen von Zellen in einem Excel-Arbeitsblatt. Sie können die API entweder über NuGet installieren oder direkt aus dem Abschnitt Downloads herunterladen.
PM> Install-Package Aspose.Cells.Cpp
Zellen in einem Excel-Arbeitsblatt mit C++ zusammenführen
In diesem Beispiel erstellen wir ein leeres Excel-Arbeitsblatt und führen einige Zellen zusammen, indem wir die folgenden Schritte ausführen.
- Erstellen Sie zunächst eine Instanz der Klasse IWorkbook.
- Rufen Sie das Arbeitsblatt mit der methode IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index) ab.
- Rufen Sie die Zellen mit der methode IWorksheet->GetICells() ab.
- Verbinden Sie die Zellen mit ICells->Merge(Aspose::Cells::Systems::Int32 firstRow, Aspose::Cells::Systems::Int32 firstColumn, Aspose::Cells::Systems::Int32 totalRows, Aspose:: Cells::Systems::Int32 totalColumns) methode.
- Wenden Sie Stile auf die verbundenen Zellen an.
- Speichern Sie schließlich die ausgegebene Excel Datei mit IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String fileName) methode.
Der folgende Beispielcode zeigt, wie Zellen in einem Excel-Arbeitsblatt mit C++ zusammengeführt werden.
// Verzeichnispfad ausgeben.
StringPtr outDir = new String("OutputDirectory\\");
// Laden Sie die Eingabe-Excel Datei
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();
// Greifen Sie auf das erste Arbeitsblatt in der Excel Datei zu
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Erstellen Sie ein Cells objekt, um alle Zellen abzurufen.
intrusive_ptr<ICells> cells = worksheet->GetICells();
// Zellen verbinden
cells->Merge(5, 2, 2, 3);
// Geben Sie Daten in die Zelle ein
cells->GetObjectByIndex(5, 2)->PutValue((StringPtr)new String("This is a test value"));
// Erstellen Sie ein Style objekt
intrusive_ptr<IStyle> style = cells->GetICell(5, 2)->GetIStyle();
// Erstellen Sie ein Font objekt
intrusive_ptr<Aspose::Cells::IFont> font = style->GetIFont();
// Legen Sie den Namen fest
font->SetName(new String("Times New Roman"));
// Legen Sie die Schriftgröße fest
font->SetSize(18);
// Legen Sie die Schriftfarbe fest
font->SetColor(Systems::Drawing::Color::GetCyan());
// Machen Sie den Text fett
font->SetBold(true);
// Machen Sie den Text kursiv
font->SetItalic(true);
// Legen Sie die Vordergrundfarbe fest
style->SetForegroundColor(Systems::Drawing::Color::GetRed());
// Legen Sie das Muster fest
style->SetPattern(BackgroundType_Solid);
// Wenden Sie den Stil an
cells->GetICell(5, 2)->SetIStyle(style);
// Speichern Sie die Excel Datei
workbook->Save(outDir->StringAppend(new String("MergeCells_out.xlsx")));
Trennen Sie Zellen in einem Excel-Arbeitsblatt mit C++
Im Folgenden sind die Schritte zum Aufheben der Zusammenführung von Zellen in einem Excel-Arbeitsblatt aufgeführt.
- Laden Sie die Excel Datei mit der Klasse IWorkbook.
- Rufen Sie das Arbeitsblatt mit verbundenen Zellen mit der methode IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index) ab.
- Rufen Sie die Zellen mit der methode IWorksheet->GetICells() ab.
- Trennen Sie Zellen mit ICells->UnMerge(Aspose::Cells::Systems::Int32 firstRow, Aspose::Cells::Systems::Int32 firstColumn, Aspose::Cells::Systems::Int32 totalRows, Aspose::Cells ::Systems::Int32 totalColumns) methode.
- Speichern Sie schließlich die ausgegebene Excel Datei mit IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String fileName) methode.
Der folgende Beispielcode demonstriert, wie Zellen in einem Excel-Arbeitsblatt mit C++ getrennt werden.
// Quellverzeichnispfad.
StringPtr srcDir = new String("SourceDirectory\\");
// Verzeichnispfad ausgeben.
StringPtr outDir = new String("OutputDirectory\\");
// Laden Sie die Eingabe-Excel Datei
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedCells.xlsx")));
// Greifen Sie auf das erste Arbeitsblatt in der Excel Datei zu
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Erstellen Sie ein Cells objekt, um alle Zellen abzurufen.
intrusive_ptr<ICells> cells = worksheet->GetICells();
// Zellen trennen.
cells->UnMerge(5, 2, 2, 3);
// Speichern Sie die Excel Datei
workbook->Save(outDir->StringAppend(new String("UnmergeCells_out.xlsx")));
Führen Sie einen Zellbereich in einem Excel-Arbeitsblatt mit C++ zusammen
Im Folgenden finden Sie die Schritte zum Zusammenführen eines Zellbereichs in einem Excel-Arbeitsblatt.
- Erstellen Sie zunächst eine Instanz der Klasse IWorkbook.
- Rufen Sie das gewünschte Arbeitsblatt mit der methode IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index) ab.
- Daten in die Zelle einfügen.
- Erstellen Sie den Bereich mit IWorksheet->GetICells()->CreateIRange(intrusiveptrAspose::Cells::Systems::String Adresse) Methode.
- Führen Sie den Bereich mit der methode IRange->Merge() zusammen.
- Speichern Sie schließlich die ausgegebene Excel Datei mit IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String fileName) methode.
Der folgende Beispielcode zeigt, wie Sie einen Zellbereich in einem Excel-Arbeitsblatt mit C++ zusammenführen.
// Verzeichnispfad ausgeben.
StringPtr outDir = new String("OutputDirectory\\");
// Laden Sie die Eingabe-Excel Datei
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook();
// Greifen Sie auf das erste Arbeitsblatt in der Excel Datei zu
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Geben Sie Daten in die A1-Zelle ein.
worksheet->GetICells()->GetObjectByIndex(0, 0)->PutValue((StringPtr)new String("This is a test value"));
// Erstellen Sie einen Bereich
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));
// Bereich in einer einzigen Zelle zusammenführen
range->Merge();
// Speichern Sie die Excel Datei
workbook->Save(outDir->StringAppend(new String("MergeRangeOfCells_out.xlsx")));
Trennen Sie einen Zellbereich in einem Excel-Arbeitsblatt mit C++
Im Folgenden sind die Schritte zum Aufheben der Zusammenführung eines Zellbereichs in einem Excel-Arbeitsblatt aufgeführt.
- Laden Sie die Excel Datei mit der Klasse IWorkbook.
- Rufen Sie das Arbeitsblatt mit verbundenen Zellen mit der methode IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index) ab.
- Erstellen Sie den Bereich mit IWorksheet->GetICells()->CreateIRange(intrusiveptrAspose::Cells::Systems::String Adresse) Methode.
- Trennen Sie den Bereich mit der methode IRange->UnMerge().
- Speichern Sie schließlich die ausgegebene Excel Datei mit IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String fileName) methode.
Der folgende Beispielcode zeigt, wie die Zusammenführung eines Zellbereichs in einem Excel-Arbeitsblatt mithilfe von C++ aufgehoben wird.
// Quellverzeichnispfad.
StringPtr srcDir = new String("SourceDirectory\\");
// Verzeichnispfad ausgeben.
StringPtr outDir = new String("OutputDirectory\\");
// Laden Sie die Eingabe-Excel Datei
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedRangeOfCells.xlsx")));
// Greifen Sie auf das erste Arbeitsblatt in der Excel Datei zu
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Erstellen Sie einen Bereich
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));
// Bereich zusammenführen
range->UnMerge();
// Speichern Sie die Excel Datei
workbook->Save(outDir->StringAppend(new String("UnmergeRangeOfCells_out.xlsx")));
Zellen eines benannten Bereichs in einem Excel-Arbeitsblatt mit C++ zusammenführen
Aspose.Cells for C++ bietet Ihnen auch die Möglichkeit, die Zellen eines benannten Bereichs zusammenzuführen. Um dies zu erreichen, folgen Sie bitte den unten angegebenen Schritten.
- Laden Sie die Excel Datei mit der Klasse IWorkbook.
- Rufen Sie das Arbeitsblatt mit der methode IWorkbook->GetIWorksheets()->GetObjectByIndex (Aspose::Cells::Systems::Int32 index) ab.
- Erstellen Sie den Bereich mit IWorksheet->GetICells()->CreateIRange(intrusiveptrAspose::Cells::Systems::String Adresse) Methode.
- Legen Sie den Namen des Bereichs mit IRange->SetName(intrusiveptrAspose::Cells::Systems::String Wert) Methode.
- Erstellen Sie Stile und wenden Sie sie auf den benannten Bereich an.
- Verbinden Sie die Zellen des benannten Bereichs mit der methode IRange->Merge().
- Speichern Sie schließlich die ausgegebene Excel Datei mit IWorkbook->Save (intrusiveptrAspose::Cells::Systems::String fileName) methode.
Der folgende Beispielcode veranschaulicht, wie die Zellen eines benannten Bereichs mit C++ zusammengeführt werden.
// Quellverzeichnispfad.
StringPtr srcDir = new String("SourceDirectory\\");
// Verzeichnispfad ausgeben.
StringPtr outDir = new String("OutputDirectory\\");
// Laden Sie die Eingabe-Excel Datei
intrusive_ptr<IWorkbook> workbook = Factory::CreateIWorkbook(srcDir->StringAppend(new String("SampleMergedRangeOfCells.xlsx")));
// Greifen Sie auf das erste Arbeitsblatt in der Excel Datei zu
intrusive_ptr<IWorksheet> worksheet = workbook->GetIWorksheets()->GetObjectByIndex(0);
// Erstellen Sie einen Bereich
intrusive_ptr<IRange> range = worksheet->GetICells()->CreateIRange(new String("A1:D4"));
// Bereichsnamen festlegen
range->SetName(new String("Named_Range"));
// Stilobjekt definieren
intrusive_ptr<IStyle> style = workbook->CreateIStyle();
// Legen Sie die horizontale Ausrichtung fest
style->SetHorizontalAlignment(TextAlignmentType::TextAlignmentType_Center);
// Erstellen Sie ein StyleFlag objekt
intrusive_ptr<IStyleFlag> styleFlag = Factory::CreateIStyleFlag();
// Legen Sie die horizontale Ausrichtung fest to true
styleFlag->SetHorizontalAlignment(true);
// Wenden Sie den Stil auf den Bereich an
range->ApplyIStyle(style, styleFlag);
// Geben Sie Daten in den Bereich ein
range->GetObjectByIndex(0, 0)->PutValue((StringPtr)new String("This is a test value"));
// Bereich zusammenführen
range->Merge();
// Speichern Sie die Excel Datei
workbook->Save(outDir->StringAppend(new String("MergeNamedRange_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 Zellen in einem Excel-Arbeitsblatt mit C++ zusammenführen und die Verbindung aufheben. Außerdem haben Sie gesehen, wie Sie Bereiche und benannte Bereiche mit Aspose.Cells für die C++-API zusammenführen und die Zusammenführung aufheben. Die API bietet viele zusätzliche Funktionen für die Arbeit mit Excel Dateien, die Sie im Detail erkunden können, indem Sie die offizielle Dokumentation besuchen. Bei Fragen können Sie uns gerne in unserem kostenlosen Support-Forum erreichen.