Python 操作 Word 文件:从新手到高手的实战指南

在日常工作和学习中,Word 文档是我们处理文字信息时不可或缺的工具。无论是撰写报告、论文还是制作简历,Word 都扮演着重要角色。然而,当面对大量重复性的文档编辑任务时,手动操作不仅耗时耗力,还容易出错。幸运的是,Python 提供了强大的库来操作 Word 文件,让我们能够高效地自动化这些任务。

今天,就让我们一起深入学习如何使用 Python 操作 Word 文件,从基础的文档创建、编辑到高级的样式设置和内容提取,全方位提升你的文档处理能力。

一、Python 操作 Word 文件的利器:python-docx

在 Python 生态系统中,python-docx 是一个专门用于操作 Word 文件的库。它支持创建、修改和读取 .docx 格式的 Word 文档,功能强大且易于使用。通过 python-docx,我们可以轻松地添加文本、图片、表格,设置样式,甚至提取文档内容。

(一)安装 python-docx

在开始之前,我们需要先安装 python-docx 库。打开你的终端或命令提示符,运行以下命令:

bash 复制代码
pip install python-docx

安装完成后,你就可以开始使用 python-docx 来操作 Word 文件了。

二、创建 Word 文档

(一)创建一个简单的文档

python 复制代码
from docx import Document

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

# 添加一个标题
doc.add_heading('我的第一个 Word 文档', level=0)

# 添加一段文本
doc.add_paragraph('这是一个用 Python 创建的 Word 文档。')

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

运行上述代码后,你将在当前目录下看到一个名为 example.docx 的 Word 文档,其中包含一个标题和一段文本。

(二)添加更多内容

除了基本的标题和段落,我们还可以在文档中添加更多内容,如图片、表格等。

1. 添加图片
python 复制代码
doc.add_picture('image.jpg', width=Inches(4.0))
2. 添加表格
python 复制代码
# 添加一个表格
table = doc.add_table(rows=1, cols=3)

# 设置表格标题
hdr_cells = table.rows[0].cells
hdr_cells[0].text = '序号'
hdr_cells[1].text = '名称'
hdr_cells[2].text = '描述'

# 添加表格内容
records = (
    (1, '苹果', '红色水果'),
    (2, '香蕉', '黄色水果'),
    (3, '橙子', '橙色水果'),
)

for record in records:
    row_cells = table.add_row().cells
    row_cells[0].text = str(record[0])
    row_cells[1].text = record[1]
    row_cells[2].text = record[2]

三、编辑 Word 文档

(一)修改文档内容

除了创建新的文档,我们还可以使用 python-docx 打开现有的 Word 文档并进行编辑。

python 复制代码
# 打开一个现有的 Word 文档
doc = Document('example.docx')

# 修改第一个段落的内容
doc.paragraphs[0].text = '这是修改后的内容。'

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

(二)添加样式

python-docx 提供了丰富的样式设置功能,我们可以对文档中的文本、段落、表格等进行样式设置。

1. 设置段落样式
python 复制代码
# 添加一个段落并设置样式
paragraph = doc.add_paragraph()
run = paragraph.add_run('这是加粗的文本。')
run.bold = True

run = paragraph.add_run('这是斜体的文本。')
run.italic = True
2. 设置表格样式
python 复制代码
# 设置表格样式
table.style = 'LightShadingAccent1'

四、提取 Word 文档内容

(一)提取文本内容

除了创建和编辑文档,python-docx 还可以用来提取文档中的内容。

python 复制代码
# 打开一个现有的 Word 文档
doc = Document('example.docx')

# 提取文档中的所有文本内容
for para in doc.paragraphs:
    print(para.text)

(二)提取表格内容

python 复制代码
# 提取文档中的表格内容
for table in doc.tables:
    for row in table.rows:
        for cell in row.cells:
            print(cell.text, end=' ')
        print()

五、高级应用:生成批量文档

(一)批量生成文档

python-docx 的强大之处在于它可以用于自动化生成大量文档。例如,我们可以根据一个数据表生成多个文档。

python 复制代码
import pandas as pd

# 读取数据
data = pd.read_excel('data.xlsx')

# 遍历数据,生成文档
for index, row in data.iterrows():
    doc = Document()
    doc.add_heading(f'文档 {index + 1}', level=0)
    doc.add_paragraph(f'姓名:{row["姓名"]}')
    doc.add_paragraph(f'年龄:{row["年龄"]}')
    doc.add_paragraph(f'描述:{row["描述"]}')
    doc.save(f'文档_{index + 1}.docx')

六、总结

通过本文的介绍,你已经掌握了如何使用 Python 的 python-docx 库来操作 Word 文件。无论是创建新的文档、编辑现有文档,还是提取文档内容,python-docx 都能轻松应对。此外,结合 Pandas 等库,我们还可以实现批量生成文档,大大提高工作效率。

  • 创建文档 :使用 Document() 创建新文档,添加标题、段落、图片和表格。
  • 编辑文档:打开现有文档,修改内容,设置样式。
  • 提取内容:提取文档中的文本和表格内容。
  • 批量生成:结合 Pandas,根据数据表生成多个文档。