mirror of
https://github.com/Hestia-Homes/Model.git
synced 2026-06-08 11:17:27 +00:00
_write_headers uses 25 columns, 2 rows, and "Doors" group label 🟩
This commit is contained in:
parent
4ba9d64c09
commit
65a40ad371
1 changed files with 25 additions and 27 deletions
|
|
@ -14,7 +14,7 @@ UPLOADED_FILE_ID: int = 7843
|
|||
_HEADER_FILL = PatternFill("solid", fgColor="D9D9D9")
|
||||
_FLOOR_FILL = PatternFill("solid", fgColor="BDD7EE")
|
||||
_BOLD = Font(bold=True)
|
||||
_TOTAL_COLS = 31 # A–AE
|
||||
_TOTAL_COLS = 25 # A–Y
|
||||
|
||||
|
||||
@dataclass
|
||||
|
|
@ -82,15 +82,18 @@ def _build_rows(plan: Plan) -> list[AuditRow]:
|
|||
return rows
|
||||
|
||||
|
||||
_BLANK_SEPARATOR_COLS = {5, 21}
|
||||
|
||||
|
||||
def _write_headers(ws: Worksheet) -> None:
|
||||
# Row 1: group labels (merged)
|
||||
_merge_bold_fill(ws, 1, 1, 1, 4, "Room")
|
||||
# E1 blank separator
|
||||
# col 5: blank separator
|
||||
_merge_bold_fill(ws, 1, 6, 1, 11, "Window Area")
|
||||
_merge_bold_fill(ws, 1, 12, 1, 21, "Openings")
|
||||
_merge_bold_fill(ws, 1, 22, 1, 26, "Trickle Vents")
|
||||
# AA (27) blank separator
|
||||
_merge_bold_fill(ws, 1, 28, 1, 31, "Door Undercuts")
|
||||
_merge_bold_fill(ws, 1, 12, 1, 15, "Openings")
|
||||
_merge_bold_fill(ws, 1, 16, 1, 20, "Trickle Vents")
|
||||
# col 21: blank separator
|
||||
_merge_bold_fill(ws, 1, 22, 1, 25, "Doors")
|
||||
|
||||
# Row 2: column labels
|
||||
_header_cell(ws, 2, 1, "Room")
|
||||
|
|
@ -104,29 +107,24 @@ def _write_headers(ws: Worksheet) -> None:
|
|||
_header_cell(ws, 2, 10, "Area m²")
|
||||
_header_cell(ws, 2, 11, "Opening Type")
|
||||
_header_cell(ws, 2, 12, "No. of Openings")
|
||||
for i, col in enumerate([13, 15, 17, 19]):
|
||||
_merge_bold_fill(ws, 2, col, 2, col + 1, f"Opening {i + 1}")
|
||||
_header_cell(ws, 2, 21, "Total Area m²")
|
||||
_header_cell(ws, 2, 22, "Blocked")
|
||||
_header_cell(ws, 2, 23, "Pictured")
|
||||
_header_cell(ws, 2, 24, "Effective Area")
|
||||
_header_cell(ws, 2, 25, "Count")
|
||||
_header_cell(ws, 2, 26, "Total Effective Area")
|
||||
_header_cell(ws, 2, 28, "Location")
|
||||
_header_cell(ws, 2, 29, "Width mm")
|
||||
_header_cell(ws, 2, 30, "Undercut mm")
|
||||
_header_cell(ws, 2, 31, "Area mm²")
|
||||
_header_cell(ws, 2, 13, "Opening Width m")
|
||||
_header_cell(ws, 2, 14, "Opening Height m")
|
||||
_header_cell(ws, 2, 15, "Total Area m²")
|
||||
_header_cell(ws, 2, 16, "Blocked")
|
||||
_header_cell(ws, 2, 17, "Pictured")
|
||||
_header_cell(ws, 2, 18, "Effective Area")
|
||||
_header_cell(ws, 2, 19, "Count")
|
||||
_header_cell(ws, 2, 20, "Total Effective Area")
|
||||
_header_cell(ws, 2, 22, "Location")
|
||||
_header_cell(ws, 2, 23, "Width mm")
|
||||
_header_cell(ws, 2, 24, "Undercut mm")
|
||||
_header_cell(ws, 2, 25, "Area mm²")
|
||||
|
||||
# Row 3: Width/Height sub-headers under Opening 1–4
|
||||
for col in [13, 15, 17, 19]:
|
||||
_header_cell(ws, 3, col, "Width m")
|
||||
_header_cell(ws, 3, col + 1, "Height m")
|
||||
|
||||
# Apply fill to all header cells in rows 1–3
|
||||
for row in range(1, 4):
|
||||
# Apply fill to header cells in rows 1–2, skipping blank separator columns
|
||||
for row in range(1, 3):
|
||||
for col in range(1, _TOTAL_COLS + 1):
|
||||
cell = ws.cell(row=row, column=col)
|
||||
cell.fill = _HEADER_FILL
|
||||
if col not in _BLANK_SEPARATOR_COLS:
|
||||
ws.cell(row=row, column=col).fill = _HEADER_FILL
|
||||
|
||||
|
||||
def _write_data_rows(ws: Worksheet, rows: list[AuditRow]) -> None:
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue