# 키보드 탐색 단축키

## Content

마우스나 키보드 키를 사용하여 활성 셀을 변경하거나 셀을 선택할 수 있습니다. 또한 키보드 키를 사용하여 셀 데이터를 변경할 수 있습니다.
최종 사용자는 다음과 같은 기본 키보드 키를 사용할 수 있습니다.

| 키 | 동작 |
| --- | --- |
| Ctrl+Z | `undo` (실행 취소) |
| Ctrl+Y | `redo` (다시 실행) |
| Ctrl + Down | `navigationBottom` (시트 하단 이동) |
| Down | `navigationDown` (아래로 이동) |
| End | `navigationEnd` (행 끝으로 이동) |
| Ctrl+Right | `navigationEnd` (행 끝으로 이동) |
| Ctrl+Home | `goToSheetBeginning` (시트 시작으로 이동) |
| Home | `navigationHome` (행 시작으로 이동) |
| Ctrl+Left | `navigationHome2` (행 시작으로 이동) |
| Ctrl+End | `goToSheetBottomRight` (시트 오른쪽 하단으로 이동) |
| Left | `navigationLeft` (왼쪽으로 이동) |
| Tab | `moveToNextCell` (다음 셀로 이동) |
| PageDown | `navigationPageDown` (페이지 아래로 이동) |
| PageUp | `navigationPageUp` (페이지 위로 이동) |
| Ctrl+PageUp | `NavigationPreviousSheet` (이전 시트로 이동) |
| Ctrl+PageDown | `NavigationNextSheet` (다음 시트로 이동) |
| Shift+Tab | `moveToPreviousCell` (이전 셀로 이동) |
| Right | `navigationRight` (오른쪽으로 이동) |
| Ctrl+Up | `navigationTop` (시트 상단으로 이동) |
| Up | `navigationUp` (위로 이동) |
| Delete | `clear` (셀 내용 삭제) |
| Back | `clearAndEditing` (셀 내용 삭제 후 편집) |
| Enter | `commitInputNavigationDown` (입력 확정 후 아래로 이동) |
| Shift+Enter | `commitInputNavigationUp` (입력 확정 후 위로 이동) |
| ESC | `cancelInput` (입력 취소) |
| Shift+Left | `selectionLeft` (왼쪽으로 선택 확장) |
| Shift+Right | `selectionRight` (오른쪽으로 선택 확장) |
| Shift+Up | `selectionUp` (위로 선택 확장) |
| Shift+Down | `selectionDown` (아래로 선택 확장) |
| Shift+Home | `selectionHome` (행 시작까지 선택 확장) |
| Ctrl+Shift+Left | `selectionHome` (행 시작까지 선택 확장) |
| Shift+End | `selectionEnd` (행 끝까지 선택 확장) |
| Ctrl+Shift+Right | `selectionEnd` (행 끝까지 선택 확장) |
| Shift+PageUp | `selectionPageUp` (페이지 위까지 선택 확장) |
| Shift+PageDown | `selectionPageDown` (페이지 아래까지 선택 확장) |
| Ctrl+Shift+Up | `selectionTop` (시트 상단까지 선택 확장) |
| Ctrl+Shift+Down | `selectionBottom` (시트 하단까지 선택 확장) |
| Ctrl+Shift+Home | `selectionFirst` (시트 시작까지 선택 확장) |
| Ctrl+Shift+End | `selectionLast` (시트 끝까지 선택 확장) |
| Ctrl+C | `Copy` (복사) |
| Ctrl+X | `Cut` (잘라내기) |
| Ctrl+V | `Paste` (붙여넣기) |
| Alt+Enter | `InputNewLine` (셀 내 줄 바꿈) |

> **참고**: Ctrl+PageUp 및 Ctrl+PageDown 키보드 단축키는 호스트 환경과 충돌이 없을 때만 작동합니다.
> 복사 및 붙여넣기 동작과 관련된 키보드 단축키에 대한 추가 정보는 다음과 같습니다.
>
> * SpreadJS는 시스템 클립보드에 직접 접근할 수 없습니다.
> * Ctrl+C를 사용해 SpreadJS에서 복사를 수행하면 외부 복사와 내부 복사가 모두 실행됩니다.
> * Ctrl+V를 사용해 SpreadJS에서 붙여넣기를 수행하면 외부 붙여넣기 또는 내부 붙여넣기 중 하나를 판단하여 실행합니다.
> * 컨텍스트 메뉴나 명령 관리자(Command Manager)를 사용할 경우, SpreadJS는 항상 내부 복사 및 내부 붙여넣기만 수행합니다. 이는 시스템 클립보드에 접근할 수 없기 때문입니다.

## 추가 키보드 단축키

SpreadJS는 몇 가지 추가 키보드 단축키 명령을 지원합니다. 이러한 단축키는 **Keyboard Shortcuts** 프로젝트를 다운로드하여 확장 기능으로 프로젝트에 포함시킬 수 있습니다. 프로젝트 및 사용 방법은 **[SpreadJS 단축키 소개 포럼 글](https://dev.mescius.co.kr/bbs/board.php?bo_table=spreadjs_o_study&wr_id=32)**에서 확인할 수 있습니다. 또한 이 프로젝트를 기반으로 사용자 정의 단축키를 추가할 수도 있습니다.

| 키 | 동작 |
| --- | --- |
| Shift + Space | `selectEntireRow` (전체 행 선택) |
| Ctrl + Space | `selectEntireColumn` (전체 열 선택) |
| Ctrl + "-" | `deleteEntireRowOrColumn` (전체 행 또는 열 삭제) |
| Ctrl + 9 | `hideSelectRows` (선택 행 숨기기) |
| Ctrl + [ | `goToPrecedent` (참조 셀로 이동) |
| Ctrl + ] | `goToDependent` (종속 셀로 이동) |
| Ctrl + ; | `setDate` (날짜 입력) |
| Alt + = | `autoSumSelectRange` (선택 범위 자동 합계) |
| Alt + Shift + Right Arrow | `groupSelectRange` (선택 범위 그룹화) |
| Alt + Shift + Left Arrow | `ungroupSelectRange` (그룹 해제) |
| Alt + ; | `selectVisibleCells` (표시된 셀만 선택) |
| Ctrl + D | `CopyCellDown` (셀 아래로 복사) |
| Ctrl + R | `CopyCellRight` (셀 오른쪽으로 복사) |
| Ctrl + Shift + "+" | `InsertRowsOrColumns` (행/열 삽입) |
| Ctrl + A | `SelectAll` (전체 선택) |
| Ctrl + B | `setCellBold` (셀 글꼴 굵게) |
| Ctrl + I | `setCellItalicize` (셀 글꼴 기울임) |
| Ctrl + U | `setCellUnderline` (셀 글꼴 밑줄) |
| Ctrl + Shift + % | `setNumberToPrecent` (숫자를 퍼센트로 변환) |
| Ctrl + Arrow | `navigationNextnonEmpty` (다음 비어있지 않은 셀로 이동) |
| Ctrl + Shift + Arrow | `selectRangenonEmpty` (비어있지 않은 범위 선택) |
| Ctrl + Shift + + | `insertRange` (범위 삽입) |
| Ctrl + - | `deleteRange` (범위 삭제) |

> **주의 사항**:
>
> * 단축키 라이브러리는 디자이너 컴포넌트 라이브러리에 통합되어 있으며, 디자이너 컴포넌트 라이브러리 빌드에 포함되어 있어 사용자가 단축키 라이브러리 파일을 별도로 연결할 필요가 없습니다.
> * Ctrl + Arrow 및 Ctrl + Shift + Arrow 단축키는 실행 취소(Undo) 및 다시 실행(Redo)을 지원하지 않습니다.
> * 이 단축키들은 Mac OS를 지원하지 않습니다.
> * 이 단축키들은 테이블 시트와 간트 시트에서 지원되지 않습니다.