Erstellen Sie Tabellen in Word Dokumenten mit Python

Tabellen werden häufig in Word Dokumenten verwendet, um Informationen in einer gitterartigen Struktur zu organisieren. Sie ermöglichen es Ihnen, die Informationen in Form von Zeilen und Spalten zusammenzufassen. In diesem Artikel erfahren Sie, wie Sie mithilfe von Python programmgesteuert eine Tabelle in Word Dokumenten erstellen. Darüber hinaus behandelt der Artikel, wie Sie verschachtelte Tabellen erstellen oder eine vorhandene Tabelle in Word Dokumenten klonen.

Python Bibliothek zum Erstellen von Tabellen in Word Dokumenten

Um mit Tabellen in Word Dokumenten zu arbeiten, verwenden wir Aspose.Words for Python. Die Bibliothek wurde entwickelt, um Word Dokumente dynamisch aus den Python Anwendungen heraus zu erstellen und zu manipulieren. Sie können die Bibliothek von PyPI mit dem folgenden Pip Befehl installieren.

pip install aspose-words

Erstellen Sie eine Tabelle in einem Word Dokument in Python

Im Folgenden sind die Schritte zum Erstellen einer Tabelle in einem Word-DOCX-Dokument mit Python aufgeführt.

  • Erstellen Sie ein Objekt der Document Klasse.
  • Erstellen Sie ein Objekt der DocumentBuilder Klasse.
  • Starten Sie eine Tabelle mit der methode DocumentBuilder.starttable() und rufen Sie die Referenz der Tabelle in einem Objekt ab.
  • Fügen Sie eine Zelle mit der methode DocumentBuilder.insertcell() ein.
  • Legen Sie die Formatierung der Zelle mit der Eigenschaft DocumentBuilder.cellformat fest.
  • Legen Sie die automatische Anpassung mit der methode autofit(aw.tables.AutoFitBehavior.FIXEDCOLUMNWIDTHS) fest.
  • Ausrichtung der Zelle festlegen.
  • Fügen Sie mithilfe der Methode DocumentBuilder.write() Text in die Zelle ein.
  • Wiederholen Sie das Einfügen von Zellen und Text in Zellen nach Bedarf.
  • Beenden Sie eine Zeile, wenn Sie das Einfügen von Zellen abgeschlossen haben.
  • Beenden Sie die Tabelle, wenn Sie alle Zeilen eingefügt haben.
  • Speichern Sie das Word Dokument mit der methode Document.save().

Das folgende Codebeispiel zeigt, wie Sie mit Python eine Tabelle in DOCX Dokumenten erstellen.

import aspose.words as aw

# Create a new Word document.
doc = aw.Document()

# Create document builder.
builder = aw.DocumentBuilder(doc)

# Start the table.
table = builder.start_table()

# Insert cell.
builder.insert_cell()

# Table wide formatting must be applied after at least one row is present in the table.
table.left_indent = 20.0

# Set height and define the height rule for the header row.
builder.row_format.height = 40.0
builder.row_format.height_rule = aw.HeightRule.AT_LEAST

# Set alignment and font settings.
builder.paragraph_format.alignment = aw.ParagraphAlignment.CENTER
builder.font.size = 16
builder.font.name = "Arial"
builder.font.bold = True

builder.cell_format.width = 100.0
builder.write("Header Row,\n Cell 1")

# We don't need to specify this cell's width because it's inherited from the previous cell.
builder.insert_cell()
builder.write("Header Row,\n Cell 2")

builder.insert_cell()
builder.cell_format.width = 200.0
builder.write("Header Row,\n Cell 3")
builder.end_row()

builder.cell_format.width = 100.0
builder.cell_format.vertical_alignment = aw.tables.CellVerticalAlignment.CENTER

# Reset height and define a different height rule for table body.
builder.row_format.height = 30.0
builder.row_format.height_rule = aw.HeightRule.AUTO
builder.insert_cell()

# Reset font formatting.
builder.font.size = 12
builder.font.bold = False

builder.write("Row 1, Cell 1 Content")
builder.insert_cell()
builder.write("Row 1, Cell 2 Content")

builder.insert_cell()
builder.cell_format.width = 200.0
builder.write("Row 1, Cell 3 Content")
builder.end_row()

builder.insert_cell()
builder.cell_format.width = 100.0
builder.write("Row 2, Cell 1 Content")

builder.insert_cell()
builder.write("Row 2, Cell 2 Content")

builder.insert_cell()
builder.cell_format.width = 200.0
builder.write("Row 2, Cell 3 Content.")
builder.end_row()

# End table.
builder.end_table()

# Save the document.
doc.save("table_formatted.docx")

Das Folgende ist der Screenshot der Tabelle, die wir mit dem obigen Codebeispiel erstellt haben.

Erstellen Sie eine verschachtelte Tabelle in einem Word Dokument in Python

Mit Aspose.Words for Python können Sie auch nahtlos eine verschachtelte Tabelle erstellen. Mit anderen Worten, Sie können eine neue Tabelle innerhalb einer Zelle der Tabelle erstellen. Im Folgenden sind die Schritte zum Erstellen einer verschachtelten Tabelle in einer Word DOCX Datei aufgeführt.

  • Erstellen Sie ein Objekt der Document Klasse.
  • Erstellen Sie ein Objekt der DocumentBuilder Klasse.
  • Starten Sie eine Tabelle mit der methode DocumentBuilder.starttable() und rufen Sie die Referenz der Tabelle in einem Objekt ab.
  • Fügen Sie eine Zelle mit der methode DocumentBuilder.insertcell() ein und erhalten Sie den Verweis auf die Zelle in einem Objekt.
  • Fügen Sie mithilfe der Methode DocumentBuilder.write() Text in die Zelle ein.
  • Wiederholen Sie das Einfügen von Zellen und Text in Zellen nach Bedarf.
  • Beenden Sie die Tabelle, wenn Sie alle Zeilen eingefügt haben.
  • Verschieben Sie das Steuerelement mithilfe der DocumentBuilder.moveto(Cell.firstparagraph) methode in die gewünschte Zelle.
  • Erstellen Sie eine weitere Tabelle, indem Sie Zellen einfügen, und beenden Sie die Tabelle, wenn Sie fertig sind.
  • Speichern Sie das Word Dokument mit der methode Document.save().

Das folgende Codebeispiel zeigt, wie Sie mit Python eine verschachtelte Tabelle in einem DOCX-Dokument erstellen.

import aspose.words as aw

# Create a new Word document.
doc = aw.Document()
builder = aw.DocumentBuilder(doc)

# Insert cell.
cell = builder.insert_cell()
builder.writeln("Outer Table Cell 1")

builder.insert_cell()
builder.writeln("Outer Table Cell 2")

# This call is important to create a nested table within the first table. 
# Without this call, the cells inserted below will be appended to the outer table.
builder.end_table()

# Move to the first cell of the outer table.
builder.move_to(cell.first_paragraph)

# Build the inner table.
builder.insert_cell()
builder.writeln("Inner Table Cell 1")
builder.insert_cell()
builder.writeln("Inner Table Cell 2")
builder.end_table()

# Save the document.
doc.save("table_nested.docx")

Das Folgende ist die Ausgabe des obigen Codebeispiels.

Klonen Sie eine vorhandene Tabelle in einem Word Dokument in Python

Sie können auch eine vorhandene Tabelle in einem Word Dokument klonen. Im Folgenden sind die Schritte zum Ausführen dieses Vorgangs aufgeführt.

  • Laden Sie das Dokument mithilfe der Document Klasse.
  • Rufen Sie die Referenz der Tabelle in einem Objekt mit der methode Document.getchild(NodeType.TABLE, int, boolean).astable() ab.
  • Rufen Sie die Methode clone(True).astable() mit dem Objekt der Tabelle auf und rufen Sie die Referenz der geklonten Tabelle in einem anderen Objekt ab.
  • Fügen Sie die geklonte Tabelle mit der methode Table.parentnode.insertafter() ein.
  • Fügen Sie mit der methode Table.parentnode.insertafter(Paragraph(Document), Table) einen leeren Absatz zwischen Tabellen ein.
  • Speichern Sie das Word Dokument mit der methode Document.save().

Das folgende Codebeispiel zeigt, wie Sie eine Tabelle in einem Word-DOCX-Dokument mit Python klonen.

import aspose.words as aw

# Load the Word document.
doc = aw.Document("table_formatted.docx")

# Get reference of the desired table.
table = doc.get_child(aw.NodeType.TABLE, 0, True).as_table()

# Clone the table and insert it into the document after the original table.
tableClone = table.clone(True).as_table()
table.parent_node.insert_after(tableClone, table)

# Insert an empty paragraph between the two tables,
# or else they will be combined into one upon saving.
table.parent_node.insert_after(aw.Paragraph(doc), table)

# Save the document.
doc.save("table_clone.docx")

Der folgende Screenshot zeigt die geklonte Tabelle in einem Word Dokument.

Holen Sie sich eine kostenlose API Lizenz

Sie können eine vorübergehende Lizenz erwerben, um Aspose.Words for Python ohne Evaluierungseinschränkungen zu verwenden.

Fazit

In diesem Artikel haben Sie gelernt, wie Sie mit Python Tabellen in Word Dokumenten erstellen. Außerdem haben Sie gesehen, wie Sie verschachtelte Tabellen erstellen oder die vorhandenen Tabellen in Word Dokumenten dynamisch klonen können. Außerdem können Sie die Dokumentation von Aspose.Words for Python besuchen, um andere Funktionen zu erkunden. Bei Fragen können Sie uns diese gerne über unser Forum mitteilen.

Siehe auch

Info: Wenn Sie jemals ein Word Dokument aus einer PowerPoint Präsentation erhalten müssen, können Sie den Konverter Aspose Presentation to Word Document verwenden.