- 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
34 lines
1.4 KiB
TypeScript
34 lines
1.4 KiB
TypeScript
/* =============================================================================
|
|
* spreadsheet_refshift.ts (주인 A)
|
|
* 참조 옮김 — 행열 넣기 · 지우기 · 잘라 붙이기 · 시트 이름 바꾸기 때 식 글을 고쳐 적음(엑셀 규칙) ·
|
|
* 복사 · 채우기 때 상대 참조만 옮김 · 구글 R1C1 식 → A1.
|
|
* 지운 칸 · 격자 밖으로 나간 참조는 `#REF!` · 범위는 남은 만큼 줄어듦(끝까지 지우면 `#REF!`).
|
|
* 0 계약 머리 — 몸은 A 가 채움.
|
|
* ========================================================================== */
|
|
|
|
import type { CellAddress, Command, Workbook } from "./spreadsheet_types";
|
|
|
|
const todo = (): never => {
|
|
throw new Error("spreadsheet_refshift: 아직 없음(A)");
|
|
};
|
|
|
|
/** 행열 · 옮기기 · 시트이름 명령에 맞춰 식 글 고침(식이 든 시트 id = `host`) — 안 바뀌면 같은 글 */
|
|
export function shiftForCommand(
|
|
_formula: string,
|
|
_host: string,
|
|
_command: Command,
|
|
_book: Workbook,
|
|
): string {
|
|
return todo();
|
|
}
|
|
|
|
/** 복사 · 채우기 — 상대 참조만 (dr, dc) 옮김 · 격자 밖은 `#REF!` */
|
|
export function moveFormula(_formula: string, _dr: number, _dc: number): string {
|
|
return todo();
|
|
}
|
|
|
|
/** 구글 `data-sheets-formula`(`=2*R[0]C[-1]`) → 붙일 자리 기준 A1 식(앞 `=` 뺌) */
|
|
export function r1c1ToA1(_formula: string, _at: CellAddress): string {
|
|
return todo();
|
|
}
|