fix(cupang): 열 너비를 픽셀 기준으로 (A=10, C·D·E=106)

구글 시트 요청에 pixelSize 를 8배로 넣어 A열이 80px 로 벌어져 있었다.
WIDTHS_PX 를 픽셀 그대로 쓰고, xlsx 는 px/7 로 환산한다.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-09-01 15:31:03 +09:00
parent b3090ced4f
commit 21018a5332
3 changed files with 22 additions and 7 deletions
+18 -3
View File
@@ -28,7 +28,22 @@ COL_FIRST = 2
COL_LAST = 12
# 센터 단위로 병합되는 열
MERGE_COLS = (3, 4, 5, 6, 7, 11, 12)
WIDTHS = {1: 10, 2: 6, 3: 12, 4: 12, 5: 12, 6: 11, 7: 10, 8: 12, 9: 26, 10: 8, 11: 12, 12: 11}
# 열 너비 — 구글 시트 기준 픽셀. xlsx 는 문자폭(px/7)으로 환산해서 쓴다.
WIDTHS_PX = {
1: 10, # A (여백)
2: 45, # B 구분
3: 106, # C 작성일
4: 106, # D 출고일
5: 106, # E 센터입고일
6: 90, # F 입고센터
7: 80, # G 출고방식
8: 95, # H 제품코드
9: 210, # I 제품명
10: 60, # J 수량
11: 100, # K 출고
12: 90, # L 작업자
}
PX_PER_CHAR = 7.0
HEADER_BG = "DBE9F7" # 머리글 행 배경
PALLET_BG = "FAE2D5" # 출고방식이 파렛트인 센터 블록 배경
PALLET_METHOD = "파렛트"
@@ -168,8 +183,8 @@ def build_workbook(ship_date: str, shipments: list[dict[str, Any]]) -> Any:
for col in range(COL_FIRST, COL_LAST + 1):
ws.cell(row=row, column=col).fill = pallet_fill
for col, width in WIDTHS.items():
ws.column_dimensions[get_column_letter(col)].width = width
for col, px in WIDTHS_PX.items():
ws.column_dimensions[get_column_letter(col)].width = round(px / PX_PER_CHAR, 2)
ws.row_dimensions[TITLE_ROW].height = 28
return wb