Working with Lists – Python .docx Module

07 Mar, 2022
Prerequisite: Working with .docx module
Word documents contain formatted text wrapped within three object levels. The Lowest level- run objects, middle level- paragraph objects, and highest level- document object. So, we cannot work with these documents using normal text editors. But, we can manipulate these word documents in python using the python-docx module. Pip command to install this module is:
pip install python-docx
Python docx module allows users to manipulate docs by either manipulating the existing one or creating a new empty document and manipulating it. It is a powerful tool as it helps you to manipulate the document to a very large extent. There are two types of lists:
Ordered List
Unordered List
To add an ordered/unordered list in a Word document there are styles available in the .add_paragraph() method of the document object.
Syntax: doc.add_paragraph(String s, style=None)
Parameters:
String s: It is the string data that is to be added as a paragraph. This string can contain newline character ‘\n’, tabs ‘\t’ or a carriage return character ‘\r’.
Style: It is used to set style.
Styles to add an ordered list are:
Sr. No.
Style Name
Description
1.
List Number
It adds an ordered list in the word document.
2.
List Number 2
It adds an ordered list with a single tab indentation in the word document.
3.
List Number 3
It adds an ordered list with double tab indentation in the word document.
Note: Each list-point is considered as a paragraph in a list so you have to add each point as a new paragraph with the same style name.
 
Example 1: Adding an ordered list in the Word document.
Python3
# Import docx NOT python-docximport docx  # Create an instance of a word documentdoc = docx.Document()  # Add a Title to the document doc.add_heading('GeeksForGeeks', 0)  # Adding list of style name 'List Number'doc.add_heading('Style: List Number', 3)# Adding points to the list named 'List Number'doc.add_paragraph('The first item in an ordered list.',                  style='List Number')  doc.add_paragraph('The second item in an ordered list.',                   style='List Number')  doc.add_paragraph('The third item in an ordered list.',                   style='List Number')  # Adding list of style name 'List Number 2'doc.add_heading('Style: List Number 2', 3)# Adding points to the list named 'List Number 2'doc.add_paragraph('The first item in an ordered list.',                  style='List Number 2')  doc.add_paragraph('The second item in an ordered list.',                  style='List Number 2')  doc.add_paragraph('The third item in an ordered list.',                   style='List Number 2')  # Adding list of style name 'List Number 3'doc.add_heading('Style: List Number 3', 3)# Adding points to the list named 'List Number 3'doc.add_paragraph('The first item in an ordered list.',                  style='List Number 3')  doc.add_paragraph('The second item in an ordered list.',                  style='List Number 3')  doc.add_paragraph('The third item in an ordered list.',                  style='List Number 3')  # Now save the document to a location doc.save('gfg.docx')
Output:
Document gfg.docx
Styles to add an unordered list are:
Sr. No.
Style Name
Description
1.
List Bullet
It adds an unordered list in the word document.
2.
List Bullet 2
It adds an unordered list with a single tab indentation in the word document.
3.
List Bullet 3
It adds an unordered list with a double tab indentation in the word document.
Note: Each list-point is considered as a paragraph in a list so you have to add each point as a new paragraph with the same style name.
 
Example 2: Adding an unordered list in the Word document.
Python3
# Import docx NOT python-docximport docx  # Create an instance of a word documentdoc = docx.Document()  # Add a Title to the document doc.add_heading('GeeksForGeeks', 0)  # Adding list of style name 'List Bullet'doc.add_heading('Style: List Bullet', 3)# Adding points to the list named 'List Number'doc.add_paragraph('The first item in an unordered list.',                   style='List Bullet')  doc.add_paragraph('The second item in an unordered list.',                  style='List Bullet')  doc.add_paragraph('The third item in an unordered list.',                  style='List Bullet')  # Adding list of style name 'List Bullet 2'doc.add_heading('Style: List Bullet 2', 3)# Adding points to the list named 'List Number'doc.add_paragraph('The first item in an unordered list.',                  style='List Bullet 2')  doc.add_paragraph('The second item in an unordered list.',                  style='List Bullet 2')  doc.add_paragraph('The third item in an unordered list.',                   style='List Bullet 2')  # Adding list of style name 'List Bullet 3'doc.add_heading('Style: List Bullet 3', 3)# Adding points to the list named 'List Number'doc.add_paragraph('The first item in an unordered list.',                  style='List Bullet 3')  doc.add_paragraph('The second item in an unordered list.',                  style='List Bullet 3')  doc.add_paragraph('The third item in an unordered list.',                  style='List Bullet 3')  # Now save the document to a location doc.save('gfg.docx')
Output:
Document gfg.docx
kothavvsaakash
Python Docx-module
Technical Scripter 2020
Python
Technical Scripter
Writing code in comment?
Please use ide.geeksforgeeks.org,
generate link and share the link here.