Files
integral-shop/outputs/screenshot_process_table/build_process_excel.py
2026-06-04 09:01:52 +08:00

69 lines
2.2 KiB
Python
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
from openpyxl import Workbook, load_workbook
from openpyxl.styles import Alignment, Border, Font, PatternFill, Side
from openpyxl.utils import get_column_letter
OUTPUT = "outputs/screenshot_process_table/小程序上线流程表.xlsx"
headers = ["阶段", "任务", "产出物", "负责人", "建议时长"]
rows = [
["需求与原型", "需求澄清、功能清单、原型评审", "PRD、原型图", "产品", "2~3天"],
["UI设计", "界面设计、切图标注", "设计稿、切图", "UI", "3~4天"],
["开发", "前端+后端联调、自测", "代码包", "前端/后端", "6~8天"],
["测试与修复", "功能测试、兼容性、回归", "测试报告", "测试", "3~4天"],
["小程序提审", "提交代码、填写审核信息", "审核中", "产品/运营", "1~7天官方不等"],
["发布上线", "审核通过后全量/灰度发布", "线上版本", "产品/运营", "1天"],
]
wb = Workbook()
ws = wb.active
ws.title = "流程表"
ws.append(headers)
for row in rows:
ws.append(row)
header_fill = PatternFill("solid", fgColor="F3F6FA")
grid = Side(style="thin", color="D9DEE7")
border = Border(bottom=grid)
for cell in ws[1]:
cell.font = Font(name="Arial", bold=True, size=12, color="111827")
cell.fill = header_fill
cell.alignment = Alignment(horizontal="left", vertical="center")
cell.border = border
for row in ws.iter_rows(min_row=2, max_row=ws.max_row):
for cell in row:
cell.font = Font(name="Arial", size=11, color="111827")
cell.alignment = Alignment(horizontal="left", vertical="center", wrap_text=True)
cell.border = border
widths = {
"A": 16,
"B": 34,
"C": 22,
"D": 16,
"E": 22,
}
for col, width in widths.items():
ws.column_dimensions[col].width = width
for row_idx in range(1, ws.max_row + 1):
ws.row_dimensions[row_idx].height = 28
ws.freeze_panes = "A2"
ws.auto_filter.ref = f"A1:{get_column_letter(ws.max_column)}{ws.max_row}"
wb.save(OUTPUT)
check = load_workbook(OUTPUT)
sheet = check["流程表"]
assert sheet.max_row == 7
assert sheet.max_column == 5
assert sheet["A2"].value == "需求与原型"
assert sheet["E6"].value == "1~7天官方不等"
print(OUTPUT)