Commit Graph
8 Commits
Author SHA1 Message Date
eomsangdonandClaude Sonnet 5 a927ae64bc feat(spreadsheet): 엑셀 수식 복사 안내 · 값만 온 붙여넣기 세션 알림
- 도구 모음 오른쪽 끝에 흐린 글씨 안내 추가 — 「엑셀 수식까지: 엑셀에서 Ctrl+`
  → 복사 → 여기 Ctrl+V · 끝나면 엑셀 Ctrl+` 다시」 · 누르면 왜 그런지 두세 줄
  설명(엑셀 Ctrl+` = 「수식 표시」 켜기 · 그 상태로 복사해야 수식이 실림 · 그냥
  복사하면 값만 옴 · 붙인 뒤 엑셀에서 Ctrl+` 다시 눌러 원래대로)
- 도구 모음은 readOnly 면 안 붙는 기존 길을 그대로 써 보기 전용 카드에서는
  자동으로 숨음(새 분기 없음)
- 엑셀 HTML 붙여넣기(출처: "excel")인데 뭉치 전체에 식이 하나도 없으면 세션에
  한 번만 토스트 — 「값만 들어왔음 — 수식까지는 엑셀 Ctrl+` 뒤 복사」
  (sessionStorage 로 한 번 표시 기억 · 못 쓰면 매번 뜰 수 있으나 치명적이지 않음)
- ORCA 로 확인 — 안내 글 그대로 보임 · 눌러 설명 펼침/접힘 · 식 없는 엑셀
  붙여넣기 첫 번은 토스트 뜨고 세션 안 지운 채 두 번째는 안 뜸 · 식이 있으면
  (「=A1+B1」) 애초에 안 뜸 · 기존 클립보드 회귀 시험(TSV) 통과

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AeeQRLknEpP4SFjVkjDWDs
2026-09-28 14:24:04 +09:00
eomsangdonandClaude Sonnet 5 c5ad429dc3 fix(spreadsheet): 회계 형식 따옴표 CSS 유니코드 이스케이프(\0022) 안 풀리던 것 고침
- 사용자 실제 엑셀 견본(resources/tester/spreadsheet/fixture_excel_user_won.html,
  origin/main_desktop_1)으로 붙여넣기 시험 중 회계류 형식(예: `.xl126`)의
  `\0022` — 진짜 CSS 유니코드 이스케이프(16진 1~6 자리, 따옴표 `"` 를 이렇게
  실음) — 가 한 글자만 풀리고(`\0` → `0`) 나머지 `022` 가 그대로 남아 형식에
  글자 "0022" 가 끼던 것 발견 · `unescapeMsoNumFmt` 가 `\x` 한 글자 이스케이프
  앞에 `\` + 16진 1~6 자리 이스케이프를 먼저 찾게 고침
- 고친 뒤 회계 4구역 형식이 `_-* #,##0.00_-;\-* #,##0.00_-;_-* "-"??_-;_-@_-`
  처럼 온전히 들어옴(글자 "0022" 없음 · 남는 홑 역슬래시 없음 · ₩ 없음)
- ORCA 로 이 견본 통째 붙여넣기 확인 — 칸 133개 값 · 병합 9개 · Fixed·0·General·
  0% 이름 형식 그대로 넘김 · 「 =」(앞에 공백 있어 원래도 식 아님) · 「1식」·
  「3식」 글자 칸 모두 글로 남음(식으로 안 잡힘), 기존 회계 형식 견본 회귀 없음
- 수식 흔적(x:fmla) 없음 재확인 — 이 실 견본에도 x:str/x:num 만 있고 수식은
  칸 글 자체가 「=...」 로 시작하는 형태(HTML 클립보드엔 수식이 안 실림)

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AeeQRLknEpP4SFjVkjDWDs
2026-09-28 13:45:41 +09:00
eomsangdonandClaude Sonnet 5 e0f9df9ba9 fix(spreadsheet): 엑셀 회계 숫자 형식 끝 역슬래시 남던 것 고침
- mso-number-format 처럼 값 안에 이스케이프된 `\;`(구역 나눔 자리표시, 회계·통화
  형식처럼 구역이 여럿인 형식에 흔함)를 선언 나눔 `parseStyleAttr` 가 진짜 `;`
  로 착각해 값을 그 자리서 잘라 버리던 것 고침 — `\` 뒤 글자는 통째로 건너뛰고
  이스케이프 안 된 `;` 에서만 나누는 `splitDecls` 로 바꿈
- 잘리면 값 끝에 역슬래시 하나만 남고 뒤 구역이 통째로 날아가던 것(사용자 저장본
  material/rv.json 서식 형식 끝 '\' 로 나타남)이었음 — 고친 뒤 4구역 회계 형식
  (양수·음수·0·글자)이 통째로 살아 들어옴
- resources/tester/spreadsheet/fixture_excel_accounting_fmt.html 새 견본으로
  ORCA 실 엔진 확인 — 형식이 `_-* #,##0.00_-;-* #,##0.00_-;_-* "-"??_-;_-@_-`
  로 온전히 들어옴(역슬래시 없음), 기존 fixture_excel_style_paste.html 회귀
  없음 확인
- 수식 흔적(x:fmla) 확인 — 기존 견본엔 x:str/x:num 만 있고 x:fmla 없음(수식 칸도
  x:str 이 `=...` 글 그대로 담아 기존 「=」 앞머리 잡기로 이미 됨). 사용자 실제
  클립보드 견본(main_desktop_1)은 아직 안 옴 — 오면 그걸로 다시 봄

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AeeQRLknEpP4SFjVkjDWDs
2026-09-28 13:35:18 +09:00
eomsangdonandClaude Sonnet 5 b2e2fcff91 fix(spreadsheet): 엑셀 붙여넣기 서식 — 묶음 선택자 클래스 · 선 굵기별 종류
- <style> 안 클래스 규칙 읽기가 「.xl65, .xl70 {...}」 같은 묶음 선택자에서 앞쪽 클래스를
  놓치던 것 고침(전체 선택자를 쉼표로 나눠 각 클래스에 선언 병합)
- 테두리 pt 굵기 → 우리 선 종류 매핑 추가(.5pt 이하 hair · ~1.25pt thin · ~2pt medium · 그 위
  thick, dashed·dotted·double 은 굵기와 상관없이 그 모양) — 「합계 줄 위 굵은 선」처럼 같은
  칸 안 굵기가 다른 테두리를 구별해 살림
- 실제 엑셀 내보내기 짜임(머리 채움 · 가는 테두리 · 합계 줄 위 굵은 테두리 · #,##0 숫자 형식)을
  재현한 새 견본 resources/tester/spreadsheet/fixture_excel_style_paste.html 로 시험
- ORCA 실 엔진 확인 — 머리 칸 굵게·채움 #d9d9d9·가운데 정렬·사방 hair, 숫자 칸 오른쪽 정렬·
  형식 #,##0·사방 hair, 합계 줄 굵게·위 테두리만 medium(나머지 hair)까지 전부 반영 확인

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AeeQRLknEpP4SFjVkjDWDs
2026-09-28 09:45:50 +09:00
eomsangdonandClaude Sonnet 5 35d0ce3853 fix(spreadsheet): 엑셀 붙여넣기 서식 · 병합 부분 덮어쓰기 막기 · 도구 모음 기본 서식
- parseHtmlTable 이 td 인라인 style · <style> 클래스(mso-number-format 이스케이프 포함) 를 읽어
  굵게 · 기울임 · 글자색 · 채움 · 가로 정렬 · 숫자 형식 · 테두리를 칸 서식으로 살림
- 붙일 자리가 기존 병합을 일부만 걸치면 막고 알림(엑셀처럼) · 통째로 덮으면 먼저 풀고 칸마다 값
- 도구 모음 · 클립보드 styleAt 이 Sheet.기본.서식(시트 기본)까지 물려받게 고쳐 글꼴 · 크기 칸이 빔 방지
- ORCA 실 엔진 확인 — 엑셀 견본(xl65/xl66 클래스) 붙여넣기로 굵게 · 가운데 정렬 · 0.00 형식 반영,
  병합 부분 덮기 막음 · 알림 · 값 안 바뀜, 병합 통째 덮기는 자동 풀림 + 칸마다 값, 시트 전체 서식
  지정 뒤 새 칸에서 도구 모음 글꼴 · 크기 표시 확인

Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AeeQRLknEpP4SFjVkjDWDs
2026-09-27 22:32:20 +09:00
eomsangdon fddaa4edfb feat(spreadsheet): E 화면 시험 진짜 A · B 엔진으로 다시 · 클립보드 HTML 견본 추가
- 화면 시험 틀 가짜(fakes/) 걷고 진짜 `applyCommand` · `createCalcEngine` · `createHistory` · 주소 · 숫자 형식으로 재시험
- 서식 · 병합 · 탭 이름 바꾸면 다른 시트 참조 식도 옮김 · 안↔안 클립보드 수식 상대 이동을 실제 엔진 계산값으로 확인
- 엑셀(<table> + mso 스타일 · colspan · x:str/x:num · 「수식 표시」) · 구글(google-sheets-html-origin · data-sheets-formula) 클립보드 HTML 견본 추가 · `parseClipboard` 로 붙여넣기 시험
- 이 PC 는 엑셀 앱 없음 · 구글 시트는 로그인 상태로 새 문서까지 열었으나 자동화 창이 OS 포커스를 못 받아(Document is not focused) 실제 클립보드 왕복은 못 함 — 견본 파일 시험으로 갈음
- toolbar · tabs · menu · clipboard 머리 주석에 D(`spreadsheet.ts`) 잇는 자리 설명 추가
2026-09-27 20:54:17 +09:00
eomsangdon bfd7123829 feat(spreadsheet): E 도구 모음 · 시트 탭 · 우클릭 메뉴 · 클립보드 구현
- 도구 모음: 글꼴 · 크기 · 굵게 · 기울임 · 밑줄 · 취소선 · 글자색 · 채움색 · 가로/세로 정렬 · 줄 바꿈 · 병합 · 테두리 · 숫자 형식 · 되돌리기
- 시트 탭: 더하기 · 이름 바꾸기 · 지우기 · 복사 · 끌어 옮기기
- 우클릭 메뉴: 칸 · 행 머리 · 열 머리별 명령(공용 `ui_template_context_menu` 재사용)
- 클립보드: 안 → 안 서식 · 병합 · 수식 상대 이동 왕복 · 밖 → 안(엑셀 값 + 「수식 표시」 · 구글 R1C1) · 안 → 밖(TSV + 인라인 서식 HTML)
- E 화면 시험 틀(A · B 몫 가짜 대역) · TSV 파싱 Node 시험 추가
2026-09-27 20:33:26 +09:00
eomsangdonandClaude Opus 5.5 26fd4fb72e feat(spreadsheet): 산출근거 스프레드시트 0 계약 — 타입 · 엔진 머리 · 저장 견본
- spreadsheet_types.ts · spreadsheet_view_types.ts — 문서 · 칸 · 서식 · 수식 나무 · 값 · 명령 · 계산 엔진 · 화면 문맥 계약
- 머리 주석에 파일 · 주인(A~F) · 예산 줄 수 · 크기 예산(gzip 54 KB) · 규칙(외부 라이브러리 0 · M02 만 늦게 불러옴)
- A · B 엔진 · C 격자 · D 진입 · E 도구 공개 함수 머리(빈 몸)
- spreadsheet_sample.json — basis/<열 id>.json 한 벌 견본(병합 · 서식 · 다른 시트 참조 · 숨김 · 계산값)

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_0168FQuoV7vDh5nhnSowW5cp
2026-09-27 19:48:20 +09:00