---
title: "📊 260530-4_엑셀 폭 최적화 + 모바일 스크롤 + 컬럼 포맷 + 산술식 프레임"
notion_id: "37022962086881e5bb5bd0c1361e18db"
notion_url: "https://app.notion.com/p/37022962086881e5bb5bd0c1361e18db"
category: "workreport"
parent: "Claude Code 작업보고"
updated: "2026-05-30"
priority: "Medium"
purpose: "엑셀 편집기 2차 개선 — 폭 최적화(WIDE_ROUTES)·모바일 독립스크롤·컬럼 표시포맷·산술식 확장 프레임 + LogEntry 런타임 입력 검토"
---

## 개요

사장님 엑셀 편집기 2차 개선(A·B·C·D). PR #20 → main `882e3a2`. 기존 기능(독립스크롤·클릭편집·자동저장·시간포맷·3탭) 유지.

## 구현 완료

### A. 폭 최적화 (최우선)

- **근본 원인**: `/history/excel`이 `WIDE_ROUTES`에 없어 main이 600px로 좌게 렌더될
- **해결**: Layout `isExcel` 감지 → `.lay-main.is-excel` 전용 클래스. `max-width: none`(WIDE 1600px 제한도 해제) + 좌우 마진만(데스크 space-5, 모바일 0). 사이드바 제외 가용폭 풀 활용

### B. 모바일 독립 스크롤

- is-excel 하단 padding 110→0(비-wide 모바일 110px 제거) + 좌우 full bleed → 페이지 세로스크롤 최소화, 그리드 내부 독립 스크롤

### C1. 컬럼 표시 포맷 (즉시 구현)

- `ExColDef.format: { comma?, decimals?, unit? }` — 컬럼 정의만으로 보기모드 포맷. 편집 중엔 원시값
- 적용: 러닝 거리(소수 2) · 칼로리(콤마) · 근력 볼륨(콤마)

### C2. 산술식 확장 프레임 (구조만)

- `lib/cellFormula.evalCellInput`(현재 패스스루) + ExcelGrid 편집확정(onBlur) 훅. **2단계(=1+2 산술 평가) 활성 시 이 함수 한 곳만 구현하면 전 컬럼 적용**. 3단계(셀참조·함수)도 진입점 명시

## D. LogEntry 런타임 입력 — 검토 보고 (즉시 변경 안 함)

현재: 러닝 생성/수정 폼이 **분/초 2칸 분리** input(duration_min/duration_sec). 콜론 입력 없음.

- **단일 M:SS 자동마스킹 전환 장점**: 한 필드 입력(탭 이동 불필)·모바일 속도↑·셀모드·엑셀과 일관(M:SS)·3123→31:23 자동
- **단점/영향**: LogEntry runForm 구조 변경(duration_min/sec → duration 문자열), totalSec 계산·수정폼 매핑 3곳 수정. 영향 범위 = LogEntry 러닝 폼 1파일(중간 규모). 저장 포맷(duration_sec)은 동일라 데이터 호환 이상 없음
- **권장**: 일관성·모바일 속도 위해 단일필드 전환 권장. 단 분/초 분리가 "분 명확"한 장점도 있어 사장님 선호 확인 후 진행

## 검증

- npm run build ✅ tsc 통과
- ⚠️ 그리드 max-height 차감값(데스크 232/모바일 300)은 실기기 미세조정 여지. 브라우저 시각검증은 세션 충돌로 미실행 → 사장님 배포본 확인 권장

## 커밋

- `40d2d61` · PR #20 → main `882e3a2`
