Python 教程

24.1 办公自动化:使用 openpyxl 操作Excel, python-docx 操作Word

Python办公自动化:使用openpyxl操作Excel和python-docx操作Word全教程

Python 教程

本教程专为Python新手设计,详细讲解如何使用openpyxl库操作Excel文件和python-docx库处理Word文档,提供简单易懂的代码示例和实践指南,帮助快速上手办公自动化任务。

推荐工具
PyCharm专业版开发必备

功能强大的Python IDE,提供智能代码补全、代码分析、调试和测试工具,提高Python开发效率。特别适合处理列表等数据结构的开发工作。

了解更多

Python办公自动化:使用openpyxl和python-docx

介绍

在现代办公环境中,自动化处理文档可以大大提高工作效率。Python作为一门易学易用的编程语言,通过强大的库如openpyxl和python-docx,可以帮助您轻松操作Excel和Word文件。本教程将带您从零开始学习这些工具,适合编程新人入门。

安装必要的库

在开始之前,确保您已经安装了Python(推荐版本3.6及以上)。然后,通过pip安装所需库:

pip install openpyxl python-docx

使用openpyxl操作Excel

openpyxl是一个用于读写Excel 2010 xlsx/xlsm/xltx/xltm文件的库。以下是一些基本操作。

创建和保存Excel文件

首先,导入openpyxl并创建一个工作簿。

from openpyxl import Workbook

# 创建一个新的工作簿
wb = Workbook()
ws = wb.active  # 获取活动工作表
ws.title = "我的工作表"  # 设置工作表标题

# 向单元格写入数据
ws['A1'] = "姓名"
ws['B1'] = "年龄"
ws['A2'] = "张三"
ws['B2'] = 30

# 保存文件
wb.save("示例.xlsx")
print("Excel文件已创建并保存")

读取Excel文件

如果您已有Excel文件,可以读取其中的数据。

from openpyxl import load_workbook

# 加载现有Excel文件
wb = load_workbook("示例.xlsx")
ws = wb.active

# 读取单元格数据
print(ws['A1'].value)  # 输出:姓名
print(ws['B2'].value)  # 输出:30

# 遍历工作表
for row in ws.iter_rows(values_only=True):
    print(row)

修改和操作单元格

openpyxl允许您灵活修改Excel内容,如添加公式、设置样式等。

# 在单元格中添加公式
ws['C1'] = "总年龄"
ws['C2'] = "=SUM(B2:B10)"  # 假设有更多数据行

# 设置单元格样式(例如字体颜色)
from openpyxl.styles import Font
font = Font(bold=True, color="FF0000")
ws['A1'].font = font

wb.save("修改后的示例.xlsx")

使用python-docx操作Word

python-docx库允许您创建和修改Microsoft Word文档(.docx格式)。

创建和保存Word文档

开始使用python-docx创建文档。

from docx import Document

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

# 添加标题
doc.add_heading('我的文档', level=1)

# 添加段落
doc.add_paragraph('这是一个简单的段落。')

# 添加列表
doc.add_paragraph('项目1', style='List Bullet')
doc.add_paragraph('项目2', style='List Bullet')

# 保存文档
doc.save("示例.docx")
print("Word文档已创建并保存")

读取和修改Word文档

如果您需要编辑现有Word文档,可以加载它并修改内容。

from docx import Document

# 加载现有Word文档
doc = Document("示例.docx")

# 读取文档内容
for para in doc.paragraphs:
    print(para.text)

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

# 修改现有文本(通过遍历段落并修改)
for para in doc.paragraphs:
    if para.text == "这是一个简单的段落。":
        para.text = "这是一个更新后的段落。"

doc.save("修改后的示例.docx")

进阶操作:添加表格和图片

python-docx也支持更复杂的操作。

# 添加表格
table = doc.add_table(rows=3, cols=2)
table.cell(0, 0).text = "名称"
table.cell(0, 1).text = "值"
table.cell(1, 0).text = "Python"
table.cell(1, 1).text = "9.0"

# 添加图片(需确保有图片文件)
doc.add_picture('image.png', width=docx.shared.Inches(2))

doc.save("带表格和图片的示例.docx")

实战示例:从Excel读取数据生成Word报告

结合openpyxl和python-docx,自动化一个常见任务:从Excel文件读取数据并生成Word报告。

from openpyxl import load_workbook
from docx import Document

# 步骤1:读取Excel数据
wb = load_workbook("示例.xlsx")
ws = wb.active
data = []
for row in ws.iter_rows(values_only=True):
    data.append(row)  # 假设第一行是标题,第二行是数据

# 步骤2:创建Word报告
doc = Document()
doc.add_heading('数据分析报告', level=1)

# 基于Excel数据添加内容
doc.add_paragraph(f'姓名: {data[1][0]}, 年龄: {data[1][1]}')  # 假设数据在第二行

# 步骤3:保存报告
doc.save("报告.docx")
print("Word报告已生成")

总结

通过本教程,您学习了如何使用openpyxl和python-docx库来操作Excel和Word文件,这是办公自动化的重要技能。作为初学者,建议从简单示例开始,逐步尝试更复杂的任务,如结合多个库或处理大数据集。

进阶学习建议

  • 探索openpyxl的高级功能,如图表创建和样式定制。
  • 学习python-docx的更多模块,如文档格式化或文档合并。
  • 结合其他库,如Pandas处理Excel数据,以扩展自动化能力。

希望本教程对您的学习有所帮助!如果您在练习中遇到问题,欢迎参考官方文档或在线社区寻求帮助。

开发工具推荐
Python开发者工具包

包含虚拟环境管理、代码格式化、依赖管理、测试框架等Python开发全流程工具,提高开发效率。特别适合处理复杂数据结构和算法。

获取工具包