openpyxl是纯Python操作.xlsx文件的自动化工具,支持读写单元格、样式、公式、图表、合并单元格等,可批量处理成百上千张表,解放人力重复劳动。

做表繁杂?openpyxl 就是专治 Excel 重复劳动的“自动化笔”。它不依赖 Excel 软件,纯 Python 操作 .xlsx 文件,能读、写、改单元格、样式、公式、图表、合并单元格,甚至批量处理成百上千张表——核心价值就一个:把人从点鼠标、拖填充柄、反复复制粘贴里解放出来。
批量填数据,不用手动一格一格输
比如导出 50 个销售员的月度汇总表,每人一张 sheet。用 openpyxl,你只要写一次逻辑:读原始数据 → 按人分组 → 自动创建 sheet → 填入标题和数值 → 保存。10 行代码顶你手动操作 2 小时。
- 支持直接赋值给单元格:ws['A1'] = "销售额"
- 支持按行列号写:ws.cell(row=2, column=3, value=12800)
- 支持整列/整行写入列表:ws.append(['张三', 8500, '华东'])
自动套格式,告别“调样式到眼花”
领导总说“表格要加边框、标题加粗、金额右对齐、小数两位”?这些规则写进代码,每次生成自动生效,零失误、不手抖。
- 设置字体:ft = Font(name='微软雅黑', bold=True, size=11)
- 设置对齐:al = Alignment(horizontal='right', vertical='center')
- 设置边框:bd = Border(left=Side(style='thin'), right=Side(style='thin'))
- 一行应用:ws['B2'].font = ft; ws['B2'].alignment = al; ws['B2'].border = bd
读取+计算+回填,闭环处理不换工具
不用先导出 CSV、再用 pandas 算、再复制回 Excel。openpyxl 可以边读边算边写——比如读取库存表,自动标记“低于安全库存”的行,加红底色,再在旁边列写上“需补货”,全部一步到位。
立即学习“Python免费学习笔记(深入)”;
- 读值:value = ws['C5'].value(支持数字、字符串、日期、公式结果)
- 写公式:ws['D2'] = '=B2*C2'(保存后 Excel 会自动计算)
- 读公式原文:ws['D2'].value 返回 '=B2*C2',ws['D2'].data_type 是 'f'
合并单元格、插入图片、调整列宽,细节全掌控
报表常要“部门”跨多行、“汇总”居中合并、“LOGO”插在左上角、“金额列”设为 12 字符宽——这些看似琐碎的操作,openpyxl 都有对应方法,且可精准控制。
- 合并区域:ws.merge_cells('A1:D1')
- 插入图片:from openpyxl.drawing.image import Image; img = Image('logo.png'); ws.add_image(img, 'A1')
- 设列宽:ws.column_dimensions['C'].width = 15
- 设行高:ws.row_dimensions[3].height = 25
基本上就这些。不复杂,但容易忽略——真正省时间的不是“能做”,而是“稳定复用”。写好一个模板脚本,下周、下个月、下个季度,改两行参数就能跑新数据。表越繁杂,它越显本事。










