Python-docx 参考手册

简介

Python-docx 是一个用于操作 Microsoft Word 文档的 Python 库。使用它,我们可以创建、修改和读取 Word 文档,实现自动化生成报告、合同等功能。本文将介绍如何使用 Python-docx 来操作 Word 文档,并给出一些代码示例。

安装

首先,我们需要安装 python-docx 库。可以通过 pip 来安装:

pip install python-docx

创建 Word 文档

基本操作

我们可以使用 python-docx 来创建一个空白的 Word 文档:

from docx import Document

doc = Document()
doc.add_heading('Hello, Python-docx!', level=1)
doc.add_paragraph('This is a paragraph.')
doc.save('demo.docx')

上面的代码创建了一个 Word 文档,并在其中添加了一个标题和一个段落,然后保存到 demo.docx 文件中。我们可以在 Word 软件中打开这个文件查看效果。

添加表格

除了文本内容,我们还可以向文档中添加表格:

from docx import Document

doc = Document()
table = doc.add_table(rows=3, cols=2)
for i in range(3):
    row_cells = table.rows[i].cells
    row_cells[0].text = f'Row {i+1}, Column 1'
    row_cells[1].text = f'Row {i+1}, Column 2'
doc.save('table.docx')

上面的代码创建了一个包含 3 行 2 列的表格,并填充了表格内容,然后保存到 table.docx 文件中。

读取 Word 文档

读取文本内容

使用 python-docx 我们可以读取 Word 文档中的文本内容:

from docx import Document

doc = Document('demo.docx')
for paragraph in doc.paragraphs:
    print(paragraph.text)

上面的代码读取了 demo.docx 文档中的所有段落,并打印出来。

读取表格内容

如果文档中包含表格,我们也可以读取表格的内容:

from docx import Document

doc = Document('table.docx')
table = doc.tables[0]
for row in table.rows:
    for cell in row.cells:
        print(cell.text)

上面的代码读取了 table.docx 文档中的表格内容,并打印出来。

实际应用

Python-docx 可以应用在很多实际场景中,比如自动化生成报告、合同、文档处理等。下面我们通过一个实际场景来演示如何使用 python-docx。

旅行报告生成

假设我们要生成一个旅行报告,包含旅行路线、景点介绍等信息。我们可以使用 python-docx 来自动生成这个报告。

旅行图
journey
    title Travel Journey

    section Route
    Go to City A
    Go to City B
    Visit Place 1
    Visit Place 2

    section Highlights
    Scenic Spot A
    Famous Building B
类图
classDiagram
    class Document
    class Table
    class Paragraph
from docx import Document

doc = Document()
doc.add_heading('Travel Report', level=1)

doc.add_heading('Route', level=2)
route_table = doc.add_table(rows=4, cols=1)
route_table.style = 'Table Grid'
route_table.cell(0, 0).text = 'Go to City A'
route_table.cell(1, 0).text = 'Go to City B'
route_table.cell(2, 0).text = 'Visit Place 1'
route_table.cell(3, 0).text = 'Visit Place 2'

doc.add_heading('Highlights', level=2)
highlight_table = doc.add_table(rows=2, cols=1)
highlight_table.style = 'Table Grid'
highlight_table.cell(0, 0).text = 'Scenic Spot A'
highlight_table.cell(1, 0).text = 'Famous Building B'

doc.save('travel_report.docx')

上面的代码生成了一个旅行报告,包括路线和景点介绍等内容,并保存到 travel_report.docx 文件中。

结语

通过本文的介绍,我们了解了如何使用 Python-docx 库来操作 Word 文档,包括创建、修改和读取。同时,我们还通过一个实