Erstellen von Tabellen in Word-Dokumenten mit C++
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++.




