Python自动生成Word文档:高效办公的利器

Python自动生成Word文档:高效办公的利器

在日常办公中,重复性的文档编写工作往往耗时耗力。Python作为一种强大的编程语言,通过第三方库python-docx可以轻松实现Word文档的自动生成,大幅提升工作效率。本文将带你从零开始,掌握使用Python自动生成Word文档的核心技巧。

一、准备工作:安装python-docx

首先,确保你的Python环境已安装python-docx库。在命令行中运行以下命令:

pip install python-docx

安装完成后,即可在代码中导入:

from docx import Document

二、创建与保存文档

创建一个新的Word文档非常简单:

doc = Document()
doc.save('example.docx')

这样就会在当前目录生成一个空白的Word文件。你也可以打开一个现有文档进行编辑:

doc = Document('template.docx')

三、添加内容

1. 添加段落

使用add_paragraph方法可以添加段落:

p = doc.add_paragraph('这是第一个段落。')
p.add_run('这是加粗文字。').bold = True

2. 添加标题

使用add_heading方法,可指定层级:

doc.add_heading('一级标题', level=1)
doc.add_heading('二级标题', level=2)

3. 添加表格

创建表格并填充数据:

table = doc.add_table(rows=3, cols=2)
cell = table.cell(0, 0)
cell.text = '姓名'
table.cell(0, 1).text = '年龄'
# 或者使用列表循环

4. 添加图片

插入图片需要指定路径和尺寸:

doc.add_picture('chart.png', width=Inches(5), height=Inches(3))

四、样式与格式

你可以对段落和文字应用样式:

from docx.shared import Pt, Inches, Cm
from docx.enum.text import WD_ALIGN_PARAGRAPH

p = doc.add_paragraph()
p.alignment = WD_ALIGN_PARAGRAPH.CENTER
run = p.add_run('居中文字')
run.font.size = Pt(14)
run.font.name = '微软雅黑'

此外,还可以通过add_style自定义样式,实现文档风格的统一。

五、批量生成与模板复用

实际工作中,常需要根据数据批量生成文档。结合Python的数据处理能力(如pandas),可以轻松实现。以下是一个完整示例:

import pandas as pd
from docx import Document

data = pd.read_excel('data.xlsx')
for index, row in data.iterrows():
    doc = Document()
    doc.add_heading('报告', level=1)
    doc.add_paragraph(f'姓名:{row["name"]}')
    doc.add_paragraph(f'成绩:{row["score"]}')
    doc.save(f'report_{row["id"]}.docx')

这样,一份数据就能生成多份个性化的报告,大大节约时间。

六、进阶技巧

  • 使用模板:预先设计好Word模板,添加书签或占位符,然后用Python替换内容。
  • 合并文档:使用python-docx的合并功能或借助其他库实现。
  • 转换为PDF:结合comtypes或win32com(仅Windows)可将Word转为PDF。

结语

Python自动生成Word文档是办公自动化的典型应用。通过python-docx,你可以从繁琐的手工操作中解脱出来,将更多精力放在创造性工作上。希望本文能帮助你开启自动化办公的新篇章。