69 lines
2.2 KiB
Python
69 lines
2.2 KiB
Python
|
|
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)
|