Skip to main content

Command Palette

Search for a command to run...

Erstellen von Tabellen in Word-Dokumenten mit C++

Published
5 min read
A

Share office file processing skills in .NET, Java, and C++.

Tabellen sind ein wichtiges Werkzeug in Word-Dokumenten. Sie spielen eine große Rolle bei der Anzeige und Kategorisierung von Daten in einem Dokument und werden in vielen verschiedenen Dokumenten häufig verwendet. In diesem Artikel wird erklärt, wie Sie mit Spire.Doc for C++ Tabellen in Word-Dokumenten erstellen können.

Hinzufügen von Abhängigkeiten

Sie können Spire.Doc for C++ installieren, indem Sie das Paket von NuGet herunterladen.

Erstellen einer Tabelle in einem Word-Dokument

Mit Spire.Doc for C++ können Sie die Methode Section->AddTable() verwenden, um einer Sektion des Word-Dokuments eine Tabelle hinzuzufügen. Hier sind die detaillierten Schritte:

  • Erstellen Sie eine Instanz von Document.

  • Verwenden Sie die Methode Document->AddSection(), um dem Dokument eine Sektion hinzuzufügen.

  • Definieren Sie die Daten für die Header-Zeile und die restlichen Zeilen und speichern Sie sie jeweils in einem eindimensionalen Vektor und einem zweidimensionalen Vektor.

  • Verwenden Sie die Methode Section->AddTable(), um der Sektion eine Tabelle hinzuzufügen.

  • Verwenden Sie die Methode Table->ResetCells(int, int), um die Anzahl der Zeilen und Spalten der Tabelle festzulegen.

  • Fügen Sie die Daten des eindimensionalen Vektors zur Header-Zeile hinzu und formatieren Sie sie.

  • Fügen Sie die Daten des zweidimensionalen Vektors zu den restlichen Zeilen hinzu und formatieren Sie sie.

  • Verwenden Sie die Methode Document->SaveToFile(), um das Dokument zu speichern.

C++

#include "Spire.Doc.o.h"

using namespace Spire::Doc;
using namespace Spire::Common;
using namespace std;

int main()
{
    // Erstellen einer Document-Instanz
    Document* doc = new Document();

    // Hinzufügen eines Abschnitts zum Dokument
    Section* section = doc->AddSection();

    // Festlegen der Seitenränder des Abschnitts
    section->GetPageSetup()->GetMargins()->SetAll(72);

    // Definieren der Header-Zeile
    vector<wstring> header = { L"Land", L"Hauptstadt", L"Kontinente", L"Landfläche", L"Bevölkerung" };

    // Definieren der Daten für die anderen Zeilen
    vector<vector<wstring>> data =
    {
        {L"Argentina", L"Buenos Aires", L"South America", L"2777815", L"32300003"},
        {L"Bolivia", L"La Paz", L"South America", L"1098575", L"7300000"},
        {L"Brazil", L"Brasilia", L"South America", L"8511196", L"150400000"},
        {L"Canada", L"Ottawa", L"North America", L"9976147", L"26500000"},
        {L"Chile", L"Santiago", L"South America", L"756943", L"13200000"},
        {L"Colombia", L"Bogota", L"South America", L"1138907", L"33000000"},
        {L"Cuba", L"Havana", L"North America", L"114524", L"10600000"},
        {L"Ecuador", L"Quito", L"South America", L"455502", L"10600000"},
        {L"El Salvador", L"San Salvador", L"North America", L"20865", L"5300000"},
        {L"Guyana", L"Georgetown", L"South America", L"214969", L"800000"},
        {L"Jamaica", L"Kingston", L"North America", L"11424", L"2500000"},
        {L"Mexico", L"Mexico City", L"North America", L"1967180", L"88600000"},
        {L"Nicaragua", L"Managua", L"North America", L"139000", L"3900000"},
        {L"Paraguay", L"Asuncion", L"South America", L"406576", L"4660000"},
        {L"Peru", L"Lima", L"South America", L"1285215", L"21600000"},
        {L"United States", L"Washington", L"North America", L"9363130", L"249200000"},
        {L"Uruguay", L"Montevideo", L"South America", L"176140", L"3002000"},
        {L"Venezuela", L"Caracas", L"South America", L"912047", L"19700000"}
    };

    // Hinzufügen einer Tabelle zum Abschnitt
    Table* table = section->AddTable(true);

    // Festlegen der Anzahl von Zeilen und Spalten in der Tabelle
    table->ResetCells(data.size() + 1, header.size());

    // Die erste Zeile als Header-Zeile festlegen
    TableRow* row = table->GetRows()->GetItem(0);
    row->SetIsHeader(true);

    // Festlegen der Höhe und Hintergrundfarbe der Header-Zeile
    row->SetHeight(20);
    row->SetHeightType(TableRowHeightType::Exactly);
    row->GetRowFormat()->SetBackColor(Color::FromArgb(142, 170, 219));

    // Daten zur Header-Zeile hinzufügen und Formatierung festlegen
    for (int i = 0; i < header.size(); i++)
    {
        // Hinzufügen eines Absatzes
        Paragraph* p1 = row->GetCells()->GetItem(i)->AddParagraph();
        // Ausrichtung des Absatzes festlegen
        p1->GetFormat()->SetHorizontalAlignment(HorizontalAlignment::Center);
        row->GetCells()->GetItem(i)->GetCellFormat()->SetVerticalAlignment(VerticalAlignment::Middle);
        // Daten hinzufügen
        TextRange* tR1 = p1->AppendText(header[i].c_str());
        // Formatierung der Daten festlegen
        tR1->GetCharacterFormat()->SetFontName(L"Gothic");
        tThe code you provided is written in C++ and uses the Spire.Doc library to create a Word document with a table. It defines a header row and some data rows, and adds them to the table.

However, the code seems to be incomplete. It is missing the closing statements for some of the lines, and the last line is cut off. Additionally, it is unclear what you want to achieve with the code or what specific help you need.

If you can provide more information or clarify your question, I'll be happy to assist you further.

Erstellen einer verschachtelten Tabelle in einem Word-Dokument

Mit Spire.Doc for C++ können Sie die Methode TableCell->AddTable() verwenden, um einer bestimmten Zelle einer Tabelle eine verschachtelte Tabelle hinzuzufügen. Hier sind die detaillierten Schritte:

  • Erstellen Sie eine Instanz von Document.

  • Verwenden Sie die Methode Document->AddSection(), um dem Dokument eine Sektion hinzuzufügen.

  • Verwenden Sie die Methode Section->AddTable(), um der Sektion eine Tabelle hinzuzufügen.

  • Verwenden Sie die Methode Table->ResetCells(int, int), um die Anzahl der Zeilen und Spalten der Tabelle festzulegen.

  • Holen Sie sich die Zeilen der Tabelle und fügen Sie Daten zu den Zellen jeder Zeile hinzu.

  • Verwenden Sie die Methode TableCell->AddTable(), um einer bestimmten Tabellenzelle eine verschachtelte Tabelle hinzuzufügen.

  • Legen Sie die Anzahl der Zeilen und Spalten der verschachtelten Tabelle fest.

  • Holen Sie sich die Zeilen der verschachtelten Tabelle und fügen Sie Daten zu den Zellen jeder Zeile hinzu.

  • Verwenden Sie die Methode Document->SaveToFile(), um das Dokument zu speichern.

C++

#include "Spire.Doc.o.h"

using namespace Spire::Doc;

int main()
{
    // Erstelle eine Instanz des Dokuments
    Document* doc = new Document();

    // Füge dem Dokument einen Abschnitt hinzu
    Section* section = doc->AddSection();

    // Setze die Seitenränder des Abschnitts
    section->GetPageSetup()->GetMargins()->SetAll(72);

    // Füge dem Abschnitt eine Tabelle hinzu
    Table* table = section->AddTable(true);

    // Setze die Anzahl der Zeilen und Spalten der Tabelle
    table->ResetCells(2, 2);

    // Passe die Breite der Tabelle automatisch an das Fenster an
    table->AutoFit(AutoFitBehaviorType::AutoFitToWindow);

    // Hole die Zeilen der Tabelle
    TableRow* row1 = table->GetRows()->GetItem(0);
    TableRow* row2 = table->GetRows()->GetItem(1);

    // Füge Daten in die Zellen der Tabelle ein
    TableCell* cell1 = row1->GetCells()->GetItem(0);
    TextRange* tR = cell1->AddParagraph()->AppendText(L"Produkt");
    tR->GetCharacterFormat()->SetFontName(L"Yu Mincho");
    tR->GetCharacterFormat()->SetFontSize(13);
    tR->GetCharacterFormat()->SetBold(true);
    TableCell* cell2 = row1->GetCells()->GetItem(1);
    tR = cell2->AddParagraph()->AppendText(L"Beschreibung");
    tR->GetCharacterFormat()->SetFontName(L"Yu Mincho");
    tR->GetCharacterFormat()->SetFontSize(13);
    tR->GetCharacterFormat()->SetBold(true);
    TableCell* cell3 = row2->GetCells()->GetItem(0);
    tR = cell3->AddParagraph()->AppendText(L"Spire.Doc für C++");
    tR->GetCharacterFormat()->SetFontName(L"Yu Mincho");
    TableCell* cell4 = row2->GetCells()->GetItem(1);
    tR = cell4->AddParagraph()->AppendText(L"Spire.Doc für C++ ist eine professionelle Word-Bibliothek, die speziell für Entwickler entwickelt wurde, um Word-Dokumente schnell und qualitativ hochwertig in C++-Anwendungen zu erstellen, zu lesen, zu schreiben und zu konvertieren.");
    tR->GetCharacterFormat()->SetFontName(L"Yu Mincho");

    // Füge eine verschachtelte Tabelle zur vierten Zelle hinzu
    Table* nestedTable = cell4->AddTable(true);

    // Setze die Anzahl der Zeilen und Spalten der verschachtelten Tabelle
    nestedTable->ResetCells(3, 2);

    // Passe die Breite der Tabelle automatisch an den Inhalt an
    nestedTable->AutoFit(AutoFitBehaviorType::AutoFitToContents);

    // Hole die Zeilen der verschachtelten Tabelle
    TableRow* nestedRow1 = nestedTable->GetRows()->GetItem(0);
    TableRow* nestedRow2 = nestedTable->GetRows()->GetItem(1);
    TableRow* nestedRow3 = nestedTable->GetRows()->GetItem(2);

    // Füge Daten in die Zellen der verschachtelten Tabelle ein
    TableCell* nestedCell1 = nestedRow1->GetCells()->GetItem(0);
    tR = nestedCell1->AddParagraph()->AppendText(L"Lizenz");
    tR->GetCharacterFormat()->SetBold(true);
    tR->GetCharacterFormat()->SetFontName(L"Yu Mincho");
    TableCell* nestedCell2 = nestedRow1->GetCells()->GetItem(1);
    tR = nestedCell2->AddParagraph()->AppendText(L"Preis");
    tR->GetCharacterFormat()->SetBold(true);
    tR->GetCharacterFormat()->SetFontName(L"Yu Mincho");
    TableCell* nestedCell3 = nestedRow2->GetCells()->GetItem(0);
    tR = nestedCell3->AddParagraph()->AppendText(L"Entwicklerlizenz");
    tR->GetCharacterFormat()->SetFontName(L"Yu Mincho");
    TableCell* nestedCell4 = nestedRow2->GetCells()->GetItem(1);
    tR = nestedCell4->AddParagraph()->AppendText(L"$999");
    tR->GetCharacterFormat()->SetFontName(L"Yu Mincho");
    TableCell* nestedCell5 = nestedRow3->GetCells()->GetItem(0);
    tR = nestedCell5->AddParagraph()->AppendText(L"Entwickler-OEM-Lizenz");
    tR->GetCharacterFormat()->SetFontName(L"Yu Mincho");
    TableCell* nestedCell6 = nestedRow3->GetCells()->GetItem(1);
    tR = nestedCell6->AddParagraph()->AppendText(L"$2999");
    tR->GetCharacterFormat()->SetFontName(L"Yu Mincho");

    // Speichere das Dokument
    doc->SaveToFile(L"Erstellung_einer_verschachtelten_Tabelle.docx", FileFormat::Docx2013);
    doc->Close();
    delete doc;
}

Spire.Doc for C++ bietet neben dem Erstellen von Tabellen in Word-Dokumenten auch viele andere Dokumentoperationen, die in C++-Programmen integriert werden können. Weitere Informationen finden Sie auf der Website von Spire.Doc for C++.