Erstellen Sie eine Tabelle in Word mit C# | Erstellen Sie verschachtelte Tabellen in C#

Tabellen in einem Word Dokument sind ein leistungsstarkes Werkzeug zum Organisieren und Präsentieren von Daten in einem klaren und strukturierten Format. Eine Tabelle besteht aus Zeilen und Spalten, die sich überschneiden und Zellen bilden, die Text, Zahlen, Bilder oder andere Elemente enthalten können. In diesem Artikel erfahren Sie, wie Sie mit C# programmgesteuert eine Tabelle in Word Dokumenten erstellen. Dieser Artikel zeigt verschiedene Methoden zum Erstellen von Tabellen in einer DOCX-Datei, unterstützt durch Codebeispiele.

In diesem Artikel werden die folgenden Themen behandelt:

C#-Bibliothek zum Erstellen von Tabellen in Word Dokumenten

Für die Arbeit mit Tabellen in Word Dokumenten verwenden wir die Bibliothek Aspose.Words for .NET. Dabei handelt es sich um eine robuste Bibliothek, mit der Sie Word Dokumente direkt in .NET-Anwendungen dynamisch erstellen und programmgesteuert bearbeiten können.

Bitte laden Sie die DLL herunter oder installieren Sie sie von NuGet mit dem folgenden Befehl:

PM> Install-Package Aspose.Words

Erstellen einer Tabelle in einem Word Dokument in C#

Es gibt zwei Möglichkeiten, mit Aspose.Words for .NET Tabellen in Word Dokumenten zu erstellen:

  • Verwenden der DocumentBuilder Klasse
  • Verwenden des DOM (Document Object Model)

Sie können die Methode wählen, die Ihren Anforderungen am besten entspricht. Sehen wir uns also jede dieser Methoden im Detail an.

Erstellen einer Tabelle mit DocumentBuilder

Die DocumentBuilder Klasse ermöglicht die effiziente und mühelose Erstellung dynamischer Dokumente von Grund auf oder die Änderung vorhandener Dokumente. Mit ihrem umfassenden Funktionsumfang können wir nahtlos verschiedene Inhaltselemente einfügen, darunter Text, Kontrollkästchen, OLE Objekte, Absätze, Listen, Tabellen, Bilder und vieles mehr.

Befolgen Sie die nachstehenden Schritte, um mit der DocumentBuilder Klasse eine Tabelle in einem Word Dokument zu erstellen.

  1. Erstellen Sie ein Objekt der Document Klasse.
  2. Erstellen Sie ein Objekt der DocumentBuilder Klasse.
  3. Erstellen Sie mit der Methode StartTable() eine neue Tabelle.
  4. Fügen Sie mit der Methode InsertCell() eine Zelle ein.
  5. Fügen Sie mit der Methode Write() Text in die Zelle ein.
  6. Wiederholen Sie das Einfügen von Zellen und Text in Zellen nach Bedarf.
  7. Beenden Sie eine Zeile mit der Methode EndRow().
  8. Beenden Sie die Tabelle mit der Methode EndTable().
  9. Speichern Sie abschließend das Word Dokument mit der Methode Save().

Das folgende Codebeispiel zeigt, wie mit C# eine Tabelle in einem Word Dokument erstellt wird.

// Dieses Codebeispiel zeigt, wie Sie mit C# eine Tabelle in einem Word Dokument erstellen
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Beginnen Sie mit dem Aufbau der Tabelle.
builder.StartTable();
builder.InsertCell();
builder.Write("Row 1, Cell 1 Content.");

// Bauen Sie die zweite Zelle.
builder.InsertCell();
builder.Write("Row 1, Cell 2 Content.");

// Rufen Sie die folgende Methode auf, um die Zeile zu beenden und eine neue Zeile zu beginnen.
builder.EndRow();

// Bauen Sie die erste Zelle der zweiten Reihe.
builder.InsertCell();
builder.Write("Row 2, Cell 1 Content");

// Bauen Sie die zweite Zelle.
builder.InsertCell();
builder.Write("Row 2, Cell 2 Content.");
builder.EndRow();

// Signalisieren Sie, dass wir mit dem Erstellen der Tabelle fertig sind.
builder.EndTable();

doc.Save("CreateSimpleTable.docx");
Erstellen Sie mit DocumentBuilder eine Tabelle in einem Word

Erstellen einer Tabelle mit DocumentBuilder

Erstellen einer Tabelle mit dem Document Object Model (DOM)

Das Document Object Model (DOM) ist eine speicherinterne Darstellung eines Word Dokuments. Es ermöglicht programmgesteuerten Zugriff zum Lesen, Bearbeiten und Ändern des Inhalts und der Formatierung eines Word Dokuments.

Befolgen Sie die nachstehenden Schritte, um mithilfe von DOM eine Tabelle in einem Word Dokument zu erstellen.

  1. Erstellen Sie ein Objekt der Document Klasse.
  2. Erstellen Sie mit der Klasse Table() eine neue Tabelle.
  3. Fügen Sie dem Dokumenttext mit der Methode AppendChild() eine Tabelle hinzu.
  4. Erstellen Sie ein Objekt der Row Klasse und fügen Sie es mit der Methode Table.AppendChild(Row) in die Tabelle ein.
  5. Erstellen Sie ein Objekt der Cell Klasse, legen Sie Formatierungsoptionen fest und fügen Sie der Zelle Text hinzu.
  6. Fügen Sie die Zelle mit der Methode Row.AppendChild(Cell) in die Zeile ein.
  7. Wiederholen Sie den Vorgang anschließend für so viele Zeilen, wie Sie möchten.
  8. Speichern Sie abschließend das Word Dokument mit der Methode Save().

Das folgende Codebeispiel zeigt, wie mit C# eine Tabelle in einem Word Dokument erstellt wird.

// Dieses Codebeispiel zeigt, wie Sie mit DOM in C# eine Tabelle in einem Word Dokument erstellen.
Document doc = new Document();

// Wir beginnen mit der Erstellung des Tabellenobjekts. Beachten Sie, dass wir das Dokumentobjekt übergeben müssen
// zum Konstruktor jedes Knotens. Dies liegt daran, dass jeder Knoten, den wir erstellen, gehören muss
// zu einem Dokument.
Table table = new Table(doc);
doc.FirstSection.Body.AppendChild(table);

// Hier könnten wir EnsureMinimum aufrufen, um die Zeilen und Zellen für uns zu erstellen. Diese Methode wird verwendet
// um sicherzustellen, dass der angegebene Knoten gültig ist. In diesem Fall sollte eine gültige Tabelle mindestens eine Zeile und eine Zelle haben.

// Stattdessen kümmern wir uns selbst um die Erstellung der Zeile und Tabelle.
// Dies wäre die beste Möglichkeit, wenn wir eine Tabelle innerhalb eines Algorithmus erstellen würden.
Row row = new Row(doc);
row.RowFormat.AllowBreakAcrossPages = true;
table.AppendChild(row);

// Wir können jetzt beliebige Auto-Fit-Einstellungen anwenden.
table.AutoFit(AutoFitBehavior.FixedColumnWidths);

Cell cell = new Cell(doc);
cell.CellFormat.Shading.BackgroundPatternColor = Color.LightBlue;
cell.CellFormat.Width = 80;
cell.AppendChild(new Paragraph(doc));
cell.FirstParagraph.AppendChild(new Run(doc, "Row 1, Cell 1 Text"));

// Anfügen einer Zelle
row.AppendChild(cell);

// Wir würden den Vorgang dann für die anderen Zellen und Zeilen in der Tabelle wiederholen.
// Wir können die Dinge auch beschleunigen, indem wir vorhandene Zellen und Zeilen klonen.
row.AppendChild(cell.Clone(false));
row.LastCell.AppendChild(new Paragraph(doc));
row.LastCell.FirstParagraph.AppendChild(new Run(doc, "Row 1, Cell 2 Text"));

// Speichern des Dokuments
doc.Save("InsertTableDirectly.docx");
Erstellen einer Tabelle mit dem Document Object Model (DOM)

Erstellen einer Tabelle mit dem Document Object Model (DOM)

Erstellen Sie mit C# eine verschachtelte Tabelle in einem Word Dokument

Wir können auch eine neue Tabelle innerhalb einer Zelle der Tabelle erstellen. Im Folgenden finden Sie die Schritte zum Erstellen einer verschachtelten Tabelle in einem Word Dokument.

  1. Erstellen Sie ein Objekt der Document Klasse.
  2. Erstellen Sie ein Objekt der DocumentBuilder Klasse.
  3. Erstellen Sie mit der Methode StartTable() eine Tabelle und erhalten Sie einen Verweis auf die Tabelle in einem Objekt.
  4. Fügen Sie mit der Methode InsertCell() eine Zelle ein und erhalten Sie einen Verweis auf die Zelle in einem Objekt.
  5. Fügen Sie mit der Methode DocumentBuilder.Write() Text in eine Zelle ein.
  6. Wiederholen Sie das Einfügen von Zellen und Text in Zellen nach Bedarf.
  7. Beenden Sie die Tabelle, wenn Sie alle Zeilen eingefügt haben.
  8. Verschieben Sie das Steuerelement mit der Methode MoveTo(cell.FirstParagraph) innerhalb der gewünschten Zelle.
  9. Erstellen Sie eine weitere Tabelle, indem Sie Zellen einfügen, und beenden Sie die Tabelle, wenn Sie fertig sind.
  10. Speichern Sie abschließend das Word Dokument mit der Methode Save().

Das folgende Codebeispiel zeigt, wie mit C# eine geschachtelte Tabelle in einem Word Dokument erstellt wird.

// Dieses Codebeispiel zeigt, wie Sie mit C# eine verschachtelte Tabelle in einem Word Dokument erstellen.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

Cell cell = builder.InsertCell();
builder.Writeln("Outer Table Cell 1");

builder.InsertCell();
builder.Writeln("Outer Table Cell 2");

// Dieser Aufruf ist wichtig, um innerhalb der ersten Tabelle eine geschachtelte Tabelle zu erstellen. 
// Ohne diesen Aufruf werden die unten eingefügten Zellen an die äußere Tabelle angehängt.
builder.EndTable();

// Zur ersten Zelle der äußeren Tabelle wechseln.
builder.MoveTo(cell.FirstParagraph);

// Bauen Sie den inneren Tisch.
builder.InsertCell();
builder.Writeln("Inner Table Cell 1");
builder.InsertCell();
builder.Writeln("Inner Table Cell 2");
builder.EndTable();

// Speichern des Dokuments
doc.Save("NestedTable.docx");
Erstellen Sie mit C# eine verschachtelte Tabelle in einem Word Dokument

Erstellen Sie mit C# eine verschachtelte Tabelle in einem Word Dokument

Klonen Sie eine vorhandene Tabelle in einem Word Dokument in C#

Wir können eine vorhandene Tabelle in einem Word Dokument klonen, indem wir die folgenden Schritte ausführen:

  1. Laden Sie mithilfe der Document Klasse ein vorhandenes Dokument mit einer Tabelle.
  2. Holen Sie sich die Tabelle in einem Objekt mit der Methode GetChild(NodeType.TABLE, int, boolean).
  3. Klonen Sie eine Tabelle mit der Methode Table.Clone(True).
  4. Fügen Sie mit der Methode Table.ParentNode.InsertAfter() eine geklonte Tabelle ein.
  5. Fügen Sie mit der Methode Table.ParentNode.InsertAfter(new Paragraph(Document), Table) einen leeren Absatz zwischen Tabellen ein.
  6. Speichern Sie abschließend das Word Dokument mit der Methode Save().

Das folgende Codebeispiel zeigt, wie Sie mit C# eine Tabelle in einem Word Dokument klonen.

// Dieses Codebeispiel zeigt, wie man eine vorhandene Tabelle in einem Word Dokument mit C# klonen kann.
Document doc = new Document("Tables.docx");

Table table = (Table) doc.GetChild(NodeType.Table, 0, true);

// Klonen Sie die Tabelle und fügen Sie sie nach dem Original in das Dokument ein.
Table tableClone = (Table) table.Clone(true);
table.ParentNode.InsertAfter(tableClone, table);

// Fügen Sie zwischen den beiden Tabellen einen leeren Absatz ein.
// oder sie werden beim Speichern zu einem zusammengefasst. Dies hat mit der Dokumentvalidierung zu tun.
table.ParentNode.InsertAfter(new Paragraph(doc), table);
            
doc.Save("CloneCompleteTable.docx");
Klonen Sie eine vorhandene Tabelle in einem Word Dokument in C#

Klonen Sie eine vorhandene Tabelle in einem Word Dokument in C#

Erstellen einer Tabelle in einem Word Dokument aus HTML

Wir können auch mithilfe einer HTML-Zeichenfolge eine Tabelle in einem Word Dokument erstellen, indem wir die folgenden Schritte ausführen:

  1. Erstellen Sie ein Objekt der Document Klasse.
  2. Erstellen Sie ein Objekt der DocumentBuilder Klasse.
  3. Fügen Sie die HTML-Zeichenfolge der Tabelle mit der Methode DocumentBuilder.InsertHtml(String) in das Dokument ein.
  4. Speichern Sie das Dokument abschließend mit der Methode Document.Save().

Das folgende Codebeispiel zeigt, wie mit C# eine HTML-Tabelle in ein Word Dokument eingefügt wird.

// Dieses Codebeispiel zeigt, wie man mit C# eine HTML-Tabelle in ein Word Dokument einfügt.
Document doc = new Document();
DocumentBuilder builder = new DocumentBuilder(doc);

// Beachten Sie, dass AutoFitSettings nicht auf aus HTML eingefügte Tabellen zutrifft.
builder.InsertHtml("<table>" +
                   "<tr>" +
                   "<td>Row 1, Cell 1</td>" +
                   "<td>Row 1, Cell 2</td>" +
                   "</tr>" +
                   "<tr>" +
                   "<td>Row 2, Cell 2</td>" +
                   "<td>Row 2, Cell 2</td>" +
                   "</tr>" +
                   "</table>");

doc.Save("InsertTableFromHtml.docx");
Erstellen einer Tabelle in einem Word Dokument aus HTML

Erstellen einer Tabelle in einem Word Dokument aus HTML

Holen Sie sich eine kostenlose API Lizenz

Sie können eine temporäre Lizenz erwerben, um Aspose.Words for .NET ohne Evaluierungsbeschränkungen zu verwenden.

Abschluss

In diesem Artikel haben wir gelernt, wie man Tabellen in Word Dokumenten mit C# erstellt. Wir haben verschiedene Methoden erkundet, um Tabellen programmgesteuert mit C# zu erstellen. Wir haben auch gesehen, wie man verschachtelte Tabellen erstellt oder die vorhandenen Tabellen in Word Dokumenten dynamisch klont. Darüber hinaus können Sie mithilfe der Dokumentation mehr erfahren und eine Vielzahl anderer Funktionen der Bibliothek erkunden. Bei Unklarheiten können Sie uns gerne in unserem kostenlosen Support-Forum kontaktieren.

Siehe auch