授课语音

Python Word 自动化


1. 什么是 Word 自动化?

Word 自动化是指使用编程语言来处理和操作 Word 文档的内容,例如:

  • 自动创建和修改文档。
  • 从现有文档中提取数据。
  • 格式化文本,添加图表、表格和图像等。
  • 批量处理多个 Word 文件。

Python 提供了许多库来实现 Word 文档的自动化,最常用的是:

  • python-docx:用于创建、修改、提取 Word 文档内容。
  • win32com:用于与 Microsoft Word 应用程序进行交互,可以实现更高级的功能,但只适用于 Windows 系统。

2. 安装 python-docx

python-docx 是一个用于处理 .docx 文件的第三方库,可以通过以下命令安装:

pip install python-docx

3. 使用 python-docx 创建和修改 Word 文档

(1) 创建一个新的 Word 文档

使用 python-docx 可以轻松创建一个新的 Word 文档,并添加内容。

代码示例

from docx import Document

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

# 添加标题
doc.add_heading('Python Word 自动化', 0)

# 添加段落
doc.add_paragraph('这是通过 Python 自动生成的 Word 文档!')

# 添加一个有序列表
doc.add_paragraph('第一项', style='List Number')
doc.add_paragraph('第二项', style='List Number')
doc.add_paragraph('第三项', style='List Number')

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

print("文档创建成功!")

解释

  • Document():创建一个空的 Word 文档。
  • add_heading():添加一个标题。
  • add_paragraph():添加段落文本。
  • save():保存文档。

(2) 修改现有的 Word 文档

你可以使用 python-docx 来打开并修改现有的 .docx 文件。

代码示例

from docx import Document

# 打开现有的 Word 文档
doc = Document('example.docx')

# 修改文档内容
doc.paragraphs[0].text = '修改后的标题:Python 自动化操作'

# 添加新的段落
doc.add_paragraph('这是新增的段落内容')

# 保存修改后的文档
doc.save('modified_example.docx')

print("文档修改成功!")

解释

  • Document('example.docx'):打开现有文档。
  • doc.paragraphs[0].text:修改文档中第一个段落的文本。

4. 添加表格

你可以在 Word 文档中插入表格,并向表格中添加数据。

代码示例

from docx import Document

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

# 添加标题
doc.add_heading('员工信息表', 0)

# 添加表格
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 = '薪资'

# 添加数据行
row = table.add_row().cells
row[0].text = '张三'
row[1].text = '开发工程师'
row[2].text = '8000'

row = table.add_row().cells
row[0].text = '李四'
row[1].text = '产品经理'
row[2].text = '9000'

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

print("表格文档创建成功!")

解释

  • add_table(rows, cols):创建一个表格,rows 是表格的行数,cols 是列数。
  • table.rows[0].cells:访问表头单元格并填充数据。

5. 插入图片

可以使用 python-docx 向 Word 文档中插入图片。

代码示例

from docx import Document

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

# 添加标题
doc.add_heading('插入图片示例', 0)

# 插入图片
doc.add_picture('example_image.png', width=docx.shared.Inches(2))

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

print("图片插入成功!")

解释

  • add_picture():将图片插入到文档中,width 可以指定图片的宽度。

6. 使用 win32com 控制 Word 应用程序

win32com 库允许 Python 通过 COM 接口控制 Microsoft Word 应用程序。它可以提供比 python-docx 更强大的功能,如操作旧的 .doc 格式文件或自动打开和编辑 Word 文档。

(1) 安装 pywin32

首先需要安装 pywin32 库:

pip install pywin32

(2) 示例:打开并修改 Word 文档

import win32com.client as win32

# 启动 Word 应用程序
word = win32.Dispatch('Word.Application')

# 打开一个现有的 Word 文档
doc = word.Documents.Open(r'C:\path\to\your\document.docx')

# 修改文档内容
doc.Content.Text = '这是修改后的文档内容!'

# 保存文档
doc.SaveAs(r'C:\path\to\your\modified_document.docx')

# 关闭文档
doc.Close()

# 退出 Word 应用程序
word.Quit()

print("文档修改并保存成功!")

解释

  • win32.Dispatch('Word.Application'):启动 Word 应用程序。
  • Documents.Open():打开指定路径的 Word 文档。
  • Content.Text:修改文档的文本内容。

(3) 示例:创建新的 Word 文档并保存

import win32com.client as win32

# 启动 Word 应用程序
word = win32.Dispatch('Word.Application')

# 创建一个新的文档
doc = word.Documents.Add()

# 添加文本
doc.Content.Text = '这是通过 COM 接口创建的文档内容!'

# 保存文档
doc.SaveAs(r'C:\path\to\your\new_document.docx')

# 关闭文档
doc.Close()

# 退出 Word 应用程序
word.Quit()

print("新文档创建成功!")

7. 总结

通过 Python 的 python-docxwin32com 库,我们可以轻松实现 Word 自动化操作:

  • 创建和修改 Word 文档。
  • 插入文本、表格、图片等。
  • 控制 Microsoft Word 应用程序进行更高级的操作,如修改现有文档和批量处理。

这些自动化技术非常适合用于报告生成、文档模板填充、批量文档处理等任务,大大提高工作效率。

去1:1私密咨询

系列课程: