Python: Create, Read, or Update a Word Document

2023-12-18 03:15:56

Creating, reading, and updating Word documents is a common need for many developers working with the Python programming language. Whether it's generating reports, manipulating existing documents, or automating document creation processes, having the ability to work with Word documents programmatically can greatly enhance productivity and efficiency. In this article, you will learn how to create, read, or update Word documents in Python using Spire.Doc for Python.

Install Spire.Doc for Python

This scenario requires Spire.Doc for Python and plum-dispatch v1.7.4. They can be easily installed in your VS Code through the following pip command.

pip install Spire.Doc

If you are unsure how to install, please refer to this tutorial: How to Install Spire.Doc for Python in VS Code

Create a Word Document from Scratch in Python

Spire.Doc for Python offers the Document class to represent a Word document model. A document must contain at least one section (represented by the Section class) and each section is a container for various elements such as paragraphs, tables, charts, and images. This example shows you how to create a simple Word document containing several paragraphs using Spire.Doc for Python.

  • Create a Document object.
  • Add a section using Document.AddSection() method.
  • Set the page margins through Section.PageSetUp.Margins property.
  • Add several paragraphs to the section using Section.AddParagraph() method.
  • Add text to the paragraphs using Paragraph.AppendText() method.
  • Create a ParagraphStyle object, and apply it to a specific paragraph using Paragraph.ApplyStyle() method.
  • Save the document to a Word file using Document.SaveToFile() method.
  • Python
from spire.doc import *
    from spire.doc.common import *
    
    # Create a Document object
    doc = Document()
    
    # Add a section
    section = doc.AddSection()
    
    # Set the page margins
    section.PageSetup.Margins.All = 40
    
    # Add a title
    titleParagraph = section.AddParagraph()
    titleParagraph.AppendText("Introduction of Spire.Doc for Python")
    
    # Add two paragraphs
    bodyParagraph_1 = section.AddParagraph()
    bodyParagraph_1.AppendText("Spire.Doc for Python is a professional Python library designed for developers to " +
                               "create, read, write, convert, compare and print Word documents in any Python application " +
                               "with fast and high-quality performance.")
    
    bodyParagraph_2 = section.AddParagraph()
    bodyParagraph_2.AppendText("As an independent Word Python API, Spire.Doc for Python doesn't need Microsoft Word to " +
                               "be installed on neither the development nor target systems. However, it can incorporate Microsoft Word " +
                               "document creation capabilities into any developers' Python applications.")
    
    # Apply heading1 to the title
    titleParagraph.ApplyStyle(BuiltinStyle.Heading1)
    
    # Create a style for the paragraphs
    style2 = ParagraphStyle(doc)
    style2.Name = "paraStyle"
    style2.CharacterFormat.FontName = "Arial"
    style2.CharacterFormat.FontSize = 13
    doc.Styles.Add(style2)
    bodyParagraph_1.ApplyStyle("paraStyle")
    bodyParagraph_2.ApplyStyle("paraStyle")
    
    # Set the horizontal alignment of the paragraphs
    titleParagraph.Format.HorizontalAlignment = HorizontalAlignment.Center
    bodyParagraph_1.Format.HorizontalAlignment = HorizontalAlignment.Left
    bodyParagraph_2.Format.HorizontalAlignment = HorizontalAlignment.Left
    
    # Set the after spacing
    titleParagraph.Format.AfterSpacing = 10
    bodyParagraph_1.Format.AfterSpacing = 10
    
    # Save to file
    doc.SaveToFile("output/WordDocument.docx", FileFormat.Docx2019)

Python: Create, Read, or Update a Word Document

Read Text of a Word Document in Python

To get the text of an entire Word document, you could simply use Document.GetText() method. The following are the detailed steps.

  • Create a Document object.
  • Load a Word document using Document.LoadFromFile() method.
  • Get text from the entire document using Document.GetText() method.
  • Python
from spire.doc import *
    from spire.doc.common import *
    
    # Create a Document object
    doc = Document()
    
    # Load a Word file
    doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\WordDocument.docx")
    
    # Get text from the entire document
    text = doc.GetText()
    
    # Print text
    print(text)

Python: Create, Read, or Update a Word Document

Update a Word Document in Python

To access a specific paragraph, you can use the Section.Paragraphs[index] property. If you want to modify the text of the paragraph, you can reassign text to the paragraph through the Paragraph.Text property. The following are the detailed steps.

  • Create a Document object.
  • Load a Word document using Document.LoadFromFile() method.
  • Get a specific section through Document.Sections[index] property.
  • Get a specific paragraph through Section.Paragraphs[index] property.
  • Change the text of the paragraph through Paragraph.Text property.
  • Save the document to another Word file using Document.SaveToFile() method.
  • Python
from spire.doc import *
    from spire.doc.common import *
    
    # Create a Document object
    doc = Document()
    
    # Load a Word file
    doc.LoadFromFile("C:\\Users\\Administrator\\Desktop\\WordDocument.docx")
    
    # Get a specific section
    section = doc.Sections[0]
    
    # Get a specific paragraph
    paragraph = section.Paragraphs[1]
    
    # Change the text of the paragraph
    paragraph.Text = "The title has been changed"
    
    # Save to file
    doc.SaveToFile("output/Updated.docx", FileFormat.Docx2019)

Python: Create, Read, or Update a Word Document

Apply for a Temporary License

If you'd like to remove the evaluation message from the generated documents, or to get rid of the function limitations, please request a 30-day trial license for yourself.

See Also