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

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.

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")));
Bild der vom Beispielcode generierten Excel-Ausgabedatei

Bild der vom Beispielcode generierten Excel-Ausgabedatei

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.

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")));
Bild der vom Beispielcode generierten Excel-Ausgabedatei

Bild der vom Beispielcode generierten Excel-Ausgabedatei

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.

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")));
Bild der vom Beispielcode generierten Excel-Ausgabedatei

Bild der vom Beispielcode generierten Excel-Ausgabedatei

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.

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")));
Bild der vom Beispielcode generierten Excel-Ausgabedatei

Bild der vom Beispielcode generierten Excel-Ausgabedatei

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.

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")));
Bild der vom Beispielcode generierten Excel-Ausgabedatei

Bild der vom Beispielcode generierten Excel-Ausgabedatei

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.

Siehe auch