Create Table in Word Documents using Python

create tables in word documents using python

Tables are commonly used in Word documents to organize information in a grid-like structure. They allow you to summarize the information in the form of rows and columns. In this article, you will learn how to create a table in Word documents programmatically using Python. Moreover, the article will cover how to create nested tables or clone an existing table in Word documents.

Python Library to Create Tables in Word Documents

To work with tables in Word documents, we will use Aspose.Words for Python. The library is designed to create and manipulate Word documents dynamically from within the Python applications. You can install the library from PyPI using the following pip command.

pip install aspose-words

Create a Table in a Word Document in Python

The following are the steps to create a table in a Word DOCX document using Python.

  • Create an object of Document class.
  • Create an object of DocumentBuilder class.
  • Start a table using DocumentBuilder.start_table() method and get reference of the table in an object.
  • Insert a cell using DocumentBuilder.insert_cell() method.
  • Set formatting of the cell using DocumentBuilder.cell_format property.
  • Set auto fit using auto_fit(aw.tables.AutoFitBehavior.FIXED_COLUMN_WIDTHS) method.
  • Set alignment of the cell.
  • Insert text into cell using DocumentBuilder.write() method.
  • Repeat inserting cells and text into cells as required.
  • End a row when you complete inserting cells.
  • End table when you have inserted all the rows.
  • Save the Word document using Document.save() method.

The following code sample shows how to create a table in DOCX documents using Python.

The following is the screenshot of the table we have created using the code sample above.

Table in a Word DOCX Document

Create a Nested Table in a Word Document in Python

Aspose.Words for Python also allows you to create a nested table seamlessly. In other words, you can create a new table within a cell of the table. The following are the steps to create a nested table in a Word DOCX file.

  • Create an object of Document class.
  • Create an object of DocumentBuilder class.
  • Start a table using DocumentBuilder.start_table() method and get reference of the table in an object.
  • Insert a cell using DocumentBuilder.insert_cell() method and get reference of the cell in a object.
  • Insert text into cell using DocumentBuilder.write() method.
  • Repeat inserting cells and text into cells as required.
  • End table when you have inserted all the rows.
  • Move control inside the desired cell usng DocumentBuilder.move_to(Cell.first_paragraph) method.
  • Create another table by inserting cells and end the table when done.
  • Save the Word document using Document.save() method.

The following code sample shows how to create a nested table in a DOCX document using Python.

The following is the output of the code sample above.

Nested Table in a Word Document

Clone an Existing Table in a Word Document in Python

You can also clone an existing table in a Word document. The following are the steps to perform this operation.

  • Load the document using Document class.
  • Get reference of the table in an object using Document.get_child(NodeType.TABLE, int, boolean).as_table() method.
  • Call clone(True).as_table() method using the table’s object and get reference of the cloned table in another object.
  • Insert cloned table using Table.parent_node.insert_after() method.
  • Insert an empty paragraph between tables using Table.parent_node.insert_after(Paragraph(Document), Table) method.
  • Save the Word document using Document.save() method.

The following code sample shows how to clone a table in a Word DOCX document using Python.

The following screenshot shows the cloned table in a Word document.

Cloned Table in a Word Document

Get a Free API License

You can get a temporary license to use Aspose.Words for Python without evaluation limitations.

Conclusion

In this article, you have learned how to create tables in Word documents using Python. Moreover, you have seen how to create nested tables or clone the existing tables in Word documents dynamically. Besides, you can visit the documentation of Aspose.Words for Python to explore other features. In case of any questions, feel free to let us know via our forum.

See Also