Python 办公自动化入门:玩转 Excel 与 Word

Python 办公自动化入门:玩转 Excel 与 Word

为什么用 Python?

  • 免费、跨平台,配合大量成熟库(openpyxl、python-docx 等),适合做"批量、重复、格式要求高"的办公任务。
  • 与手工操作相比,可重复、可追溯,尤其适合每周/每月生成报表、合同、贺卡等。

一、环境准备
  • 安装 Python(建议 3.10+),运行 python --version 确认。
  • 创建虚拟环境:
    python -m venv venv && venv\Scripts\activate
  • 安装常用库:
    pip install openpyxl python-docx pandas pillow

二、Excel 基础操作(以 openpyxl 为例)
  1. 创建与写入
python 复制代码
from openpyxl import Workbook

wb = Workbook()
ws = wb.active
ws.title = "销售日报"
ws["A1"] = "日期"
ws["B1"] = "销量"
ws.append(["2025-09-15", 188])
wb.save("sales.xlsx")
  1. 读写单元格、批量填充
python 复制代码
from openpyxl import load_workbook

wb = load_workbook("sales.xlsx")
ws = wb["销售日报"]
for row in ws.iter_rows(min_row=2, values_only=True):
    print(row)
ws["C1"] = "备注"
ws["C2"] = "旺季"
wb.save("sales.xlsx")
  1. 样式与图表
python 复制代码
from openpyxl.styles import Font, Alignment
from openpyxl.chart import LineChart, Reference

header = Font(bold=True, color="FFFFFF")
ws["A1"].font = header
ws["A1"].fill = PatternFill("solid", fgColor="4F81BD")
ws["A1"].alignment = Alignment(horizontal="center")

chart = LineChart()
chart_data = Reference(ws, min_col=2, min_row=1, max_row=31)
chart.add_data(chart_data, titles_from_data=True)
ws.add_chart(chart, "E2")
wb.save("sales.xlsx")
  • 常见需求:批量导入 CSV→Excel、按条件高亮、月度汇总。
  • 若熟悉 pandas,可先用 DataFrame 处理,再 to_excel() 输出。

三、Word 文档操作(python-docx)
  1. 新建 + 段落/标题
python 复制代码
from docx import Document
from docx.shared import Pt

doc = Document()
doc.add_heading("月度工作报告", level=1)
p = doc.add_paragraph("本月重点:")
run = p.add_run("完成 ERP 上线")
run.bold = True
run.font.size = Pt(12)
doc.save("report.docx")
  1. 表格、图片、段落格式
python 复制代码
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 = "进度"
table.add_row().cells[0].text = "数据集成"

para = doc.add_paragraph("感谢支持!")
para.paragraph_format.first_line_indent = Pt(24)
doc.add_picture("logo.png", width=Pt(120))
doc.save("report.docx")
  1. 高级排版技巧
  • 自定义样式(document.styles["Normal"].font.name = "微软雅黑")保证中文显示。
  • 使用 docx.oxml 添加页面边框、分栏、首字下沉等(参考你现有的 generate_newsletter.py 思路)。
  • 插入文本框、WordArt:需要 VML 元素,可参照本项目中的 generate_mid_autumn_card.py 中 _add_text_box、_add_word_art 的写法。

四、综合实践思路
  1. Excel → Word :用 openpyxl 读取数据表,汇总后调用 python-docx 生成报告、报价单。
  2. 批量个性化 :循环联系人列表,逐个填充 Word 模板(可结合 docxtpl 做模板渲染)。
  3. 配图/二维码 :用 Pillow 生成横幅、二维码,插入 Word 或保存到 Excel;本项目的横幅生成函数就是示例。
  4. 流程自动化:写成脚本或 CLI,每次运行自动输出当期文档;配合 Windows 任务计划或 CI 做定时任务。

五、给"小白"的上手建议
  • 先做最小可用版本:能把 CSV 数据写进 Excel/Word 即可,再逐步加样式。
  • 多利用官方文档:
  • 遇到中文字体乱码,务必设置 run.font.name + run._element.rPr.rFonts.set(qn("w:eastAsia"), "字体")。
  • 建议将常用操作封装成函数,便于复用。例如 create_banner()、build_document()。

六、拓展方向
  • xlsxwriter:更强大的 Excel 格式控制与图表;
  • docxtpl、jinja2:模板化合同/贺卡;
  • win32com.client:直接驱动 Office(Windows 环境限定);
  • pandas + matplotlib:做复杂数据分析后写回 Excel 或嵌入 Word。

结语:Python 办公自动化的核心在于"把重复动作写成脚本"。多参考现有示例(如你项目中两个生成器),逐渐积累自己的函数库,日常出报表、贺卡、通知即可一键完成。

相关推荐
高级程序源3 小时前
django校园寻物通失物招领平台32261-计算机课程设计、毕业设计
vue.js·python·mysql·小程序·django·flask·课程设计
WeiXin_DZbishe3 小时前
基于springboot宠物领养系统-计算机毕设 附源码【课程设计】94217
vue.js·spring boot·python·django·php·课程设计
kimnoic4 小时前
Python数据库学习心得:SQLite、MySQL、PostgreSQL优缺点
开发语言·python
snhna4 小时前
向量数据库深度实战:从 HNSW 到 pgvector、Milvus 选型与 RAG 落地
数据库·人工智能·python·postgresql·milvus
必须得开心呀5 小时前
python编写带界面的软件,需要安装哪些插件
开发语言·python
Wx-bishekaifayuan5 小时前
express皖美特色农产品网售系统53118-计算机课程设计、毕业设计
人工智能·spring boot·后端·python·课程设计·express·旅游
青少儿编程课堂5 小时前
迪杰斯特拉(Dijkstra)算法:单源最短路与赛场路线规划
c++·python·算法·bfs·信息学竞赛
计算机编程指导师5 小时前
【计算机毕设推荐】基于Hadoop+Spark的公共交通运营数据分析与可视化系统源码 毕业设计 选题推荐 毕设选题 数据分析 机器学习
大数据·hadoop·python·计算机·数据分析·spark·交通
Wx-bishekaifayuan5 小时前
springboot汉中旅游服务平台41442-计算机课程设计、毕业设计
spring boot·后端·python·django·课程设计·express·旅游
WeiXin_DZbishe6 小时前
基于springboot城市公交实时运营与调度系统-计算机毕设 附源码【课程设计】66173
java·vue.js·spring boot·后端·python·php·课程设计