feat: 车辆追踪交替行底色(按车牌分组换色)
奇数车牌白底,偶数车牌浅灰底,多人同车保持同色。 车辆信息列用更深的灰色区分。达标/发放等特殊颜色覆盖底色。 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -364,6 +364,11 @@ def write_vehicle_tracking_sheet(wb, settle_month, G, master_vehicles, vehicle_p
|
|||||||
WH(ws, headers)
|
WH(ws, headers)
|
||||||
ws.freeze_panes = 'H2' # 冻结车辆信息+业务员列
|
ws.freeze_panes = 'H2' # 冻结车辆信息+业务员列
|
||||||
|
|
||||||
|
# 交替行底色
|
||||||
|
stripe_a = PatternFill(start_color='FFFFFF', end_color='FFFFFF', fill_type='solid') # 白
|
||||||
|
stripe_b = PatternFill(start_color='F5F5F5', end_color='F5F5F5', fill_type='solid') # 浅灰
|
||||||
|
vehicle_idx = 0
|
||||||
|
|
||||||
rn = 2
|
rn = 2
|
||||||
for mv in master_vehicles:
|
for mv in master_vehicles:
|
||||||
plate = mv['车牌号']
|
plate = mv['车牌号']
|
||||||
@@ -389,6 +394,7 @@ def write_vehicle_tracking_sheet(wb, settle_month, G, master_vehicles, vehicle_p
|
|||||||
if not persons:
|
if not persons:
|
||||||
persons = [''] # 无考核记录也占一行
|
persons = [''] # 无考核记录也占一行
|
||||||
|
|
||||||
|
row_stripe = stripe_b if vehicle_idx % 2 == 1 else stripe_a
|
||||||
start_rn = rn
|
start_rn = rn
|
||||||
for pi, person in enumerate(persons):
|
for pi, person in enumerate(persons):
|
||||||
sd = person_set.get(person,'').replace('业务','') if person else ''
|
sd = person_set.get(person,'').replace('业务','') if person else ''
|
||||||
@@ -456,10 +462,13 @@ def write_vehicle_tracking_sheet(wb, settle_month, G, master_vehicles, vehicle_p
|
|||||||
|
|
||||||
WR(ws, rn, row)
|
WR(ws, rn, row)
|
||||||
|
|
||||||
# 美化
|
# 美化:先刷底色(交替色),再叠加特殊色
|
||||||
# 车辆信息列灰底
|
for ci in range(1, len(headers) + 1):
|
||||||
|
ws.cell(row=rn, column=ci).fill = row_stripe
|
||||||
|
|
||||||
|
# 车辆信息列灰底(覆盖条纹)
|
||||||
for ci in range(1, info_cols + 1):
|
for ci in range(1, info_cols + 1):
|
||||||
ws.cell(row=rn, column=ci).fill = grey_fill
|
ws.cell(row=rn, column=ci).fill = grey_fill if vehicle_idx % 2 == 0 else PatternFill(start_color='E8E8E8', end_color='E8E8E8', fill_type='solid')
|
||||||
|
|
||||||
# 月度达标列着色
|
# 月度达标列着色
|
||||||
for m in range(1, settle_month + 1):
|
for m in range(1, settle_month + 1):
|
||||||
@@ -507,6 +516,8 @@ def write_vehicle_tracking_sheet(wb, settle_month, G, master_vehicles, vehicle_p
|
|||||||
ws.merge_cells(start_row=start_rn, start_column=pool_col,
|
ws.merge_cells(start_row=start_rn, start_column=pool_col,
|
||||||
end_row=start_rn + len(persons) - 1, end_column=pool_col)
|
end_row=start_rn + len(persons) - 1, end_column=pool_col)
|
||||||
|
|
||||||
|
vehicle_idx += 1
|
||||||
|
|
||||||
# 列宽
|
# 列宽
|
||||||
# 隐藏BCD列(车架号/归属公司/车型)
|
# 隐藏BCD列(车架号/归属公司/车型)
|
||||||
for cl in ['B','C','D']:
|
for cl in ['B','C','D']:
|
||||||
|
|||||||
Reference in New Issue
Block a user