👉 项目官网:https://www.python-office.com/ 👈

github star

大家好,这里是程序员晚枫,正在all in AI编程实战

今天这讲,我们学习 Word 处理——用 python-office 读取和写入 Word 文档。

1、Word读取:提取文档内容

假设有一个 报告.docx

1
2
3
4
5
6
7
import office

# 1行代码读取Word
text = office.word.read(path='报告.docx')

# 打印内容
print(text)

🎉 Done!Word 内容全部提取出来了!

2、Word写入:创建Word文档

创建一个新的 Word 文档:

1
2
3
4
5
6
7
import office

# 写入内容到Word
office.word.write(
path='新文档.docx',
content='这是我的第一份Word文档!\n\n作者:程序员晚枫'
)

运行后,新文档.docx 就创建好了。

3、写入带格式的内容

1
2
3
4
5
6
7
8
9
10
11
import office

# 创建带格式的Word
office.word.write(
path='带格式的文档.docx',
content='这是一个标题\n\n这是一段正文内容,这里是要说的重要事情。',
title='文档标题', # 大标题
font_size=16, # 字号
bold=True, # 加粗
color='FF0000' # 红色
)

4、在文档末尾追加内容

已经有一个 Word,想追加新内容:

1
2
3
4
5
6
7
import office

# 追加内容
office.word.add(
path='现有文档.docx',
content='\n\n这是追加的新内容'
)

注意:add 是在文档末尾追加,write 是覆盖写入。

5、Word转PDF

把 Word 转成 PDF:

1
2
3
4
import office

# Word转PDF
office.word.docx2pdf(path='报告.docx', output_file='报告.pdf')

6、实战案例:批量生成证书

每年要给员工生成证书,一个个手动填名字太累了:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import office

# 员工名单
names = ['张三', '李四', '王五', '赵六', '程序员晚枫']

for name in names:
office.word.write(
path=f'证书_{name}.docx',
content=f'''员工证书

兹证明 {name} 同志,在2024年度工作中表现优异,特此颁发此证。

发证日期:2024年12月31日
发证单位:XXX公司
'''
)

print(f'已生成 {len(names)} 份证书!')

7、实战案例:批量替换Word里的内容

想把所有 Word 里的"甲方"替换成"发包方":

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
import office
import os

folder = '合同文件夹'

for file in os.listdir(folder):
if file.endswith('.docx'):
path = os.path.join(folder, file)
# 读取内容
text = office.word.read(path=path)
# 替换
new_text = text.replace('甲方', '发包方')
# 写回
office.word.write(path=path, content=new_text)

print('批量替换完成!')

8、常见问题

Q:读取的格式丢失了?

A:read 只读取文字,格式会丢失。如果要保留格式,需要用 python-docx 库。

Q:Word转PDF失败?

A:Windows 用户需要安装 Word,Mac 用户需要安装 WPS 或 Microsoft Word。

Q:追加内容覆盖了原有格式?

A:用 add 追加时,原有格式会保留。

9、下讲预告

学会了 Word,下一讲我们学 PPT处理——用代码生成 PPT、添加图片和文字。

敬请期待!


有问题欢迎加微信 python-office 进群交流~

程序员晚枫专注AI编程培训,小白看完他和图灵社区合作的教程《30讲 · AI编程训练营》就能上手做AI项目。

🎓 AI 编程实战课程

想系统学习 AI 编程?程序员晚枫的 AI 编程实战课 帮你从零上手!