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

github star

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

今天教你怎么用代码给 Word 添加表格、页眉页脚和目录

1、在Word中添加表格

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

# 创建带表格的Word
content = '''项目报告

以下是项目组成员名单:

| 姓名 | 职位 | 部门 |
|------|------|------|
| 张三 | 项目经理 | 技术部 |
| 李四 | 开发工程师 | 技术部 |
| 王五 | 测试工程师 | 测试部 |

以上是本次汇报的内容。
'''

office.word.write(path='项目报告.docx', content=content)

2、添加页眉页脚

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

# 创建文档
office.word.write(path='正式文档.docx', content='这是正文内容')

# 添加页眉
office.word.add_header(
path='正式文档.docx',
text='公司名称', # 页眉文字
align='center' # 居中对齐
)

# 添加页脚
office.word.add_footer(
path='正式文档.docx',
text='第 {page} 页 / 共 {numpages} 页', # {page}和{numpages}是占位符
align='center'
)

3、添加分页符

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

content = '''第一章内容...

---

第二章内容...

---

第三章内容...
'''

# `---` 会被识别为分页符
office.word.write(path='分章节文档.docx', content=content)

4、自动生成目录

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
import office

# 创建带目录的文档
content = '''# 目录

(注:目录需要在Word中更新域才能显示)

# 第一章 引言

这里是引言内容...

# 第二章 方法

这里是方法内容...

# 第三章 结果

这里是结果内容...

# 第四章 讨论

这里是讨论内容...
'''

office.word.write(path='论文.docx', content=content)

💡 生成后用 Word 打开,右键点击目录选择"更新域"即可。

5、实战案例:批量生成带格式的合同

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
import office

def create_formatted_contract(party_a, party_b, amount, date):
"""生成一份带表格的正式合同"""

content = f'''合同

甲方(单位):{party_a}
乙方(单位):{party_b}
签订日期:{date}

合同金额:人民币 {amount}

以下是合同条款:

| 条款编号 | 条款内容 | 说明 |
|----------|----------|------|
| 第一条 | 合同标的 | 甲方向乙方购买服务 |
| 第二条 | 合同金额 | 人民币 {amount} 元 |
| 第三条 | 付款方式 | 合同签订后30日内付清 |
| 第四条 | 违约责任 | 按合同法规定执行 |

甲方签字:___________ 乙方签字:___________

签订日期:{date}
'''

filename = f'合同_{party_a}_{party_b}.docx'
office.word.write(path=filename, content=content)

# 添加页眉
office.word.add_header(path=filename, text='保密合同', align='center')

return filename

# 批量生成
contracts = [
('阿里巴巴', '我们公司', '100000', '2024-01-15'),
('腾讯', '我们公司', '80000', '2024-02-20'),
('字节跳动', '我们公司', '120000', '2024-03-10')
]

for a, b, amount, date in contracts:
filename = create_formatted_contract(a, b, amount, date)
print(f'已生成: {filename}')

6、实战案例:生成带页码的员工手册

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
import office

pages = [
('封面', '员工手册\n\n程序员晚枫公司\n2024年版'),
('目录', '目录\n\n1. 公司简介\n2. 员工守则\n3. 福利制度'),
('第一章', '第一章 公司简介\n\n我们公司成立于2020年...'),
('第二章', '第二章 员工守则\n\n第一条 遵纪守法...\n第二条 爱岗敬业...'),
('第三章', '第三章 福利制度\n\n一、社会保险\n二、带薪年假'),
]

filename = '员工手册.docx'
office.word.create(path=filename)

for title, content in pages:
office.word.add(path=filename, title=title, content=content)

# 添加页码
office.word.add_footer(
path=filename,
text='第 {page} 页',
align='center'
)

print('员工手册已生成!')

7、常见问题

Q:表格格式乱了?

A:用标准 Markdown 表格格式即可。

Q:页码显示不正常?

A:Word 会自动计算页码,首次打开可能需要刷新域。

Q:想加公司Logo?

A:用 office.word.add_header(path=path, image='logo.png') 可以加图片。

8、下讲预告

学会了Word高级格式,下一讲我们学 批量处理文件夹:批量操作大量文件。

敬请期待!


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

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

🎓 AI 编程实战课程

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