Python openpyxl:读写样式Excel一条龙,测试报表必备!

无论你是测试工程师数据分析师,还是想批量导出 Excel 的自动化工作者,只需一个库 openpyxl,即可高效搞定 Excel 的各种需求!


为什么选择 openpyxl?

✅ 支持 .xlsx 格式完整读写

✅ 支持 字体/颜色/边框/合并/公式/冻结窗格等格式控制

✅ 原生 Python,稳定、轻量,适合做工具类脚本

✅ Excel 不再只是“办公软件”,它是你的自动化输出终端!

Python openpyxl:读写样式Excel一条龙,测试报表必备!

openpyxl

变化总是在发生

加油每一位


快速创建 Excel 文件(含样式)

from openpyxl import Workbook
from openpyxl.styles import Font, Alignment

wb = Workbook()
ws = wb.active
ws.title = "全国居民人均收入情况"

# 表头
ws.append(["指标", "2025年第一季度", "2024年第四季度", "2024年第三季度", "2024年第二季度"])
for cell in ws[1]:
    cell.font = Font(bold=True)
    cell.alignment = Alignment(horizontal="center")

# 数据行
ws.append(["居民人均可支配收入累计值(元)", 12179, 41314, 30941, 20733])
ws.append(["居民人均可支配收入累计增长(%)", 5.6, 5.1, 4.9, 5.3])

wb.save("全国居民人均收入情况.xlsx")

✅ 创建完成后打开 项目预算.xlsx,你会看到带样式的 Excel 表格!

Python openpyxl:读写样式Excel一条龙,测试报表必备!


读取已有 Excel 数据

from openpyxl import load_workbook

wb = load_workbook("全国居民人均收入情况.xlsx")
ws = wb["全国居民人均收入情况"]

for row in ws.iter_rows(min_row=2, values_only=True):
    print(row)

输出示例:

('居民人均可支配收入累计值(元)', 12179, 41314, 30941, 20733)
('居民人均可支配收入累计增长(%)', 5.6, 5.1, 4.9, 5.3)

可以用它来读取测试结果、日志汇总、接口返回数据


✨ 实战技巧集锦(提议收藏)

Python openpyxl:读写样式Excel一条龙,测试报表必备!


样式设置完整示例(带边框、颜色)

from openpyxl import Workbook
from openpyxl.styles import Font, Alignment
from openpyxl.styles import Border, Side, PatternFill

wb = Workbook()
ws = wb.active
ws.title = "全国居民人均收入情况"

# 表头
ws.append(["指标", "2025年第一季度", "2024年第四季度", "2024年第三季度", "2024年第二季度"])
for cell in ws[1]:
    cell.font = Font(bold=True)
    cell.alignment = Alignment(horizontal="center")
# 数据行
ws.append(["居民人均可支配收入累计值(元)", 12179, 41314, 30941, 20733])
ws.append(["居民人均可支配收入累计增长(%)", 5.6, 5.1, 4.9, 5.3])

# 设置边框
thin = Side(border_style="thin", color="000000")
border = Border(left=thin, right=thin, top=thin, bottom=thin)

# 设置背景色
fill = PatternFill(fill_type="solid", start_color="C6EFCE")

for row in ws.iter_rows(min_row=2, max_row=3, min_col=2, max_col=5):
    for cell in row:
        cell.border = border
        cell.fill = fill

wb.save("全国居民人均收入情况.xlsx")

用于:测试报告可视化 / 表格高亮 / 自动报表生成等场景。

Python openpyxl:读写样式Excel一条龙,测试报表必备!

带边框、颜色


多 Sheet 写入示例

from openpyxl import Workbook
wb = Workbook()
ws = wb.active
ws.title = "全国居民人均收入情况"

sheet1 = wb.active
sheet1.title = "居民人均可支配收入累计值(元)"
sheet2 = wb.create_sheet("居民人均可支配收入累计增长(%)")

sheet1.append(["指标", "季度"])
sheet2.append(["指标", "涨幅"])
wb.save("全国居民人均收入情况_多sheet.xlsx")

Python openpyxl:读写样式Excel一条龙,测试报表必备!

多 Sheet 写入


✅ 实战:测试结果汇总写入 Excel

from openpyxl import Workbook
wb = Workbook()
ws = wb.active

data = [
    ["task_id", "结果", "apk", "MD5"],
    ["33", "合规", "西平部落", "6062ea470914341b0f05781389c02b60"],
    ["186", "不合规", "微达家联网", '6c195026c735b724a3cd47370f65bdf8']
]

for row in data:
    ws.append(row)

wb.save("检测结果.xlsx")

可以在接口自动化、pytest hook 后自动导出。


使用场景推荐

  • ✅ 接口测试结果 → 自动汇总导出为 Excel
  • ✅ 每日定时跑脚本 → 输出日志、统计表
  • ✅ 渠道运营数据 → 自动生成数据报表
  • ✅ Excel 模板生成 → 财务预算、日报、审计记录

福利打包:实用 openpyxl 小工具

你可以封装为如下函数方便调用:

def write_excel(file, sheet, data):
    from openpyxl import Workbook
    wb = Workbook()
    ws = wb.active
    ws.title = sheet
    for row in data:
        ws.append(row)
    wb.save(file)

使用

# 数据写入
data = [
    ["评估项", "结果", "数量"],
    ["个人信息处理原则", "不合规", 687],
    ["未按法律规定提供删除或更正个人信息功能或未公布投诉、举报方式等信息", "不合规", 497],
    ["未经用户同意收集使用个人信息", "不合规", 437],
    ["未公开收集使用规则", "不合规", 320],
    ["未明示收集使用个人信息的目的、方式和范围", "不合规", 212],
    ["未经同意向他人提供个人信息", "不合规", 73],
    ["违反必要原则,收集与其提供的服务无关的个人信息", "不合规", 62],
    ["个人信息处理活动中的个人权利", "不合规", 33],
]

write_excel("test.xlsx", "评估结果", data)


如果你对接下来想看:

  • Word 自动生成报告(python-docx)
  • 自动发送邮件 + 附件
  • 自动生成测试报告

如果你觉得有用,点赞关注不迷路,后续更新更多自动化测试经验,我们一起成长!欢迎评论区留言!

© 版权声明
THE END
如果内容对您有所帮助,就支持一下吧!
点赞0 分享
评论 共5条

请登录后发表评论