使用 Python-docx 进行 Word 文档操作

1. 什么是 Python-docx?

python-docx 是一个用于创建、修改 Microsoft Word 文件的 Python 库。通过使用这个库,用户可以自动化地生成、编辑 .docx 格式的文档。这在报告生成、批量文档处理等场景中非常有用。python-docx模块提供了一个强大的接口来创建和修改Word文档。

2. 安装 Python-docx

首先,你需要安装 python-docx。可以使用以下命令进行安装:

pip install python-docx

3. 创建 Word 文档

创建 Word 文档是 python-docx 的一个基本功能。你可以通过简单的代码生成一个 .docx 文件,并向其中添加段落、标题和其他内容。

示例代码
from docx import Document

# 创建一个新的文档对象
doc = Document()

# 添加标题
doc.add_heading('Python-docx 使用示例', level=1)

# 添加段落
doc.add_paragraph('这是使用 Python-docx 库创建的第一个段落。')

# 保存文档
doc.save('demo.docx')
代码说明
  • Document():创建一个新的文档对象。
  • add_heading():向文档中添加标题。level=1 表示标题级别为 1,对应 Word 文档中的一级标题。
  • add_paragraph():向文档中添加普通段落。
  • save():将文档保存为指定的文件名。

运行上述代码后,会生成一个名为 demo.docx 的 Word 文档,内容包括一级标题和一个段落。

4. 向文档中添加内容

python-docx 可以向文档中添加多种内容,如段落、标题、图片、表格等。以下是一些常见的操作示例。

4.1 添加标题

可以通过 add_heading() 方法向文档中添加不同级别的标题,最高支持 1 到 9 级标题。

doc.add_heading('这是一级标题', level=1)
doc.add_heading('这是二级标题', level=2)
4.2 添加段落

段落可以通过 add_paragraph() 方法添加。可以选择在段落中设置文字的格式,如加粗、斜体等。

# 添加普通段落
paragraph = doc.add_paragraph('这是一个普通段落。')

# 添加带格式的段落
paragraph = doc.add_paragraph()
run = paragraph.add_run('这是一个带有加粗和斜体的段落。')
run.bold = True  # 加粗
run.italic = True  # 斜体
4.3 添加图片

使用 add_picture() 可以将图片插入文档,并可以指定图片的大小。

doc.add_picture('image.jpg', width=docx.shared.Inches(1.0))
4.4 添加表格

python-docx 也可以向文档中添加表格,并通过遍历操作向表格中插入数据。

# 添加一个 2x2 的表格
table = doc.add_table(rows=2, cols=2)

# 向表格中添加数据
table.cell(0, 0).text = '行1, 列1'
table.cell(0, 1).text = '行1, 列2'
table.cell(1, 0).text = '行2, 列1'
table.cell(1, 1).text = '行2, 列2'

5. 修改现有 Word 文档

python-docx 中,除了创建新的文档,还可以打开并修改现有的 Word 文档。

示例代码
from docx import Document

# 打开现有文档
doc = Document('existing_document.docx')

# 向文档中添加新段落
doc.add_paragraph('这是添加到现有文档的新段落。')

# 保存修改后的文档
doc.save('modified_document.docx')
代码说明
  • Document('existing_document.docx'):打开一个现有的 Word 文档。
  • add_paragraph():在现有文档的末尾添加新段落。
  • save():将修改后的文档保存为新的文件。

6. 设置文档格式

你可以通过 python-docx 对文档的样式进行设置,例如设置字体、段落对齐方式、行距等。

6.1 设置字体

通过修改 run 对象的属性可以设置字体、大小、颜色等。

from docx.shared import Pt

paragraph = doc.add_paragraph('设置字体样式的段落。')
run = paragraph.add_run('这是加粗且字体大小为 24 的文本。')
run.bold = True
run.font.size = Pt(24)
6.2 设置段落对齐

可以通过 alignment 属性来设置段落的对齐方式。

from docx.enum.text import WD_ALIGN_PARAGRAPH

# 添加段落并设置居中对齐
paragraph = doc.add_paragraph('这是一个居中的段落。')
paragraph.alignment = WD_ALIGN_PARAGRAPH.CENTER

7. 代码示例:综合实例

以下是一个完整的综合实例,展示了如何使用 python-docx 创建一个包含标题、段落、图片和表格的文档。

from docx import Document
from docx.shared import Inches

# 创建文档对象
doc = Document()

# 添加标题
doc.add_heading('Python-docx 综合实例', 0)

# 添加段落
doc.add_paragraph('这是一个使用 Python-docx 创建的示例文档。')

# 添加图片
doc.add_picture('image.jpg', width=Inches(1.25))

# 添加表格
table = doc.add_table(rows=3, cols=3)
table.style = 'Table Grid'

for i in range(3):
    for j in range(3):
        table.cell(i, j).text = f'行 {i+1}, 列 {j+1}'

# 保存文档
doc.save('comprehensive_demo.docx')

8. 结论

python-docx 是一个强大且易于使用的库,能够帮助开发者快速地创建和修改 .docx 格式的 Word 文档。它特别适合自动化文档生成、报告制作等场景。通过使用简单的 API 接口,开发者可以轻松操作文档中的段落、表格、图片等内容,极大提高了文档处理的效率。

python-docx 虽然功能强大,但在处理复杂文档格式(如高级表格样式、页面布局)时可能会有所限制。在更复杂的场景下,可能需要借助其他工具进行配合使用。

09-12 09:21