[]
SpreadJS에서는 사용자가 컨텍스트 메뉴의 '잘라낸/복사한 셀 삽입' 옵션을 사용하여 통합 문서의 어느 시트에든 잘라내거나 복사한 셀을 삽입할 수 있습니다. 셀을 삽입할 때 컨텍스트 메뉴에는 다음 두 가지 하위 옵션이 제공됩니다:
셀을 오른쪽으로 이동
셀을 아래로 이동
셀을 오른쪽으로 이동: 잘라내거나 복사한 셀을 삽입하면, 오른쪽에 있던 데이터 항목이 더 오른쪽으로 이동합니다 (이동하는 열의 수는 삽입된 셀의 수와 동일합니다).
아래 GIF는 기존 데이터, 병합(span), 또는 테이블이 오른쪽으로 이동할 때의 동작을 보여줍니다.
다음 GIF는 기존 병합 또는 테이블이 오른쪽으로 이동하는 과정에서 분할이 필요한 경우 예외가 발생하는 모습을 보여줍니다.
셀을 아래로 이동: 잘라내거나 복사한 셀을 삽입하면, 아래에 있던 데이터 항목이 아래쪽으로 이동합니다 (이동하는 행의 수는 삽입된 셀의 수와 동일합니다).
다음 GIF는 기존 데이터, 병합(span), 또는 테이블이 아래로 이동할 때의 동작을 보여줍니다.
다음 GIF는 기존 병합 또는 테이블이 아래로 이동하는 과정에서 분할이 필요한 경우 예외가 발생하는 모습을 보여줍니다.
'잘라낸/복사한 셀 삽입' 옵션을 사용하여 행 머리글 또는 열 머리글에 데이터를 삽입할 수도 있습니다. 스프레드시트의 총 열 또는 행 수는 삽입할 셀 수로 나누어 떨어져야 합니다. 그렇지 않으면 컨텍스트 메뉴에 '잘라낸/복사한 셀 삽입' 옵션이 표시되지 않습니다. 잘라낸 또는 복사한 셀의 데이터는 행 또는 열 머리글 전체에 걸쳐 반복되어 삽입됩니다.
다음 GIF는 210개의 행과 20개의 열이 포함된 스프레드시트를 보여줍니다. 3개의 열 데이터를 복사하여 행 머리글에 삽입하려고 할 때, 20이 3으로 나누어 떨어지지 않기 때문에 ‘복사한 셀 삽입’ 옵션이 표시되지 않습니다. 반면, 2개의 열 데이터를 복사하여 삽입하면 20이 2로 나누어 떨어지므로 정상적으로 삽입됩니다.
4개의 행 데이터를 열 머리글에 삽입하려고 할 때는 210이 4로 나누어떨어지지 않으므로 ‘복사한 셀 삽입’ 옵션이 표시되지 않습니다. 반면, 3개의 행 데이터를 삽입하면 210이 3으로 나누어떨어지므로 정상적으로 삽입됩니다.
'잘라낸/복사한 셀 삽입' 옵션을 사용하여 테이블에 데이터를 삽입할 수도 있습니다. 단, 잘라낸/복사한 셀의 데이터를 대상 테이블에 붙여넣을 때는 다양한 시나리오가 있으며, 이에 대해서는 아래에서 설명하도록 하겠습니다:
행 방향
열 방향
행 방향(Row Direction): 소스가 전체 행이고, 데이터가 있는 총 열 수가 대상 테이블의 총 열 수보다 작거나 같은 경우, 잘라낸/복사한 데이터는 테이블 범위 내에 삽입됩니다. 아래 GIF는 해당 동작을 보여줍니다:
아래 표는 다른 시나리오와 그에 따른 동작을 GIF와 함께 설명합니다.
케이스 | 결과 | 이미지/ GIF |
---|---|---|
null이 아닌 범위의 colCount > 대상 테이블의 colCount |
| |
소스 범위가 전체 행이 아닌 경우
A - 잘라내거나 복사한 소스 범위의 colCount
B - 대상 테이블의 colCount 범위
C - 시트의 colCount
다음 GIF는 210개의 행과 20개의 열이 있는 스프레드시트를 보여주며, 대상 테이블은 첫 번째 열에 위치합니다. 4개의 열 데이터를 복사하여 행 머리글에 삽입할 때, ‘복사한 셀 삽입’ 옵션이 표시되고 테이블이 확장되며 행이 삽입됩니다.
다음 표는 다른 시나리오와 그에 따른 동작을 GIF와 함께 설명합니다.
케이스 | 세부 사항 | 작업(잘라내기/복사) | |
---|---|---|---|
복사: | 잘라내기: | ||
If (C%A===0) | 테이블이 열 0에서 시작하는 경우 | 테이블이 열 방향으로 확장되고 행 삽입
| A===B, 행 삽입
|
테이블이 열 0에서 시작하지 않는 경우 | 행 추가
| A<=테이블 열 수: 붙여넣기
| |
A===테이블 열 수 + B인 경우 | 반복 없이 붙여넣기
| ||
If (C%A!==0)
| 테이블이 열 0에서 시작하는 경우: |
|
|
테이블이 열 0에서 시작하지 않는 경우 |
| ||
기타 시나리오 | 소스 범위가 대상 테이블 위에 있을 경우 | 오류 메세지: | |
소스 범위가 대상 테이블 아래에 있을 경우 | 오류 메세지:
|
열 방향에서: 여기서
D: 잘라내기/복사한 범위의 행 수
E: 테이블 범위의 행 수
케이스 | 세부사항 | 작업(잘라내기/ 복사) |
---|---|---|
D===E+테이블 시작 행인 경우 | 테이블이 행 0에서 시작하는 경우: | 첫 번째 열에 삽입: 테이블이 오른쪽으로 이동하고 열 삽입 / 첫 번째 열이 아닌 경우: 붙여넣기
|
테이블이 행 0에서 시작하지 않는 경우 | 첫 번째 열에 삽입: 테이블이 오른쪽으로 이동하고 열 삽입 / 첫 열이 아닌 경우: 오류 메시지
| |
D<테이블 시작 행인 경우 | 붙여넣기
| |
D!==E+테이블 시작 행인 경우 | 오류메세지:
|
참고: 행 영역에 이미 다른 데이터나 병합이 포함되어 있으면 데이터는 삽입되지 않습니다.