# 숨겨진 범위에 데이터 붙여넣기/건너뛰기

## Content

스프레드시트에서는 **pasteSkipInvisibleRange** 속성을 사용하여 데이터를 숨겨진 범위에 붙여넣을지 여부를 선택할 수 있습니다. 기본적으로는 숨겨진 셀, 행, 열에도 데이터가 붙여넣기 됩니다.
그러나 **pasteSkipInvisibleRange** 속성을 `true`로 설정하면, 숨겨진 범위에는 붙여넣기를 생략하고, 대신 범위 내의 다음 보이는 셀에 데이터가 붙여넣어지도록 설정할 수 있습니다.

| `pasteSkipInvisibleRange = true`일 때 | `pasteSkipInvisibleRange = false`일 때 |
| --------------------------------- | ---------------------------------- |
| ![](https://gcdocumentsitekrblob.blob.core.windows.net/document-site-files/images/8d606653-16a0-474d-b9dc-e2b4d01c2446/images/pasteskipinvisblerangetrue.png) | ![](https://gcdocumentsitekrblob.blob.core.windows.net/document-site-files/images/8d606653-16a0-474d-b9dc-e2b4d01c2446/images/pasteskipinvisblerange.png) |

SpreadJS에서는 다음과 같은 조건에 해당하는 셀, 행, 열을 **보이지 않는(Invisible)** 것으로 간주합니다:

* 필터링된 행 또는 열
* 그룹으로 묶여 접힌 행 또는 열
* ColumnWidth 또는 RowHeight 가 0으로 설정된 행 또는 열
* 숨겨진(Hidden) 행 또는 열

다음 표는 **pasteSkipInvisibleRange** 속성이 지원되는 기능들과 해당 동작 방식을 나타냅니다.

| **복사된 객체** | **복사 이전 상태** | **pasteSkipInvisibleRange = True** | **pasteSkipInvisibleRange = False** |
| ------ | -------- | ------------------------------ | ------------------------------- |
| **Value** | 셀에 속함 | 대상 셀이 보이지 않으면, 다음의 보이는 유효한 행/열에 붙여넣음<br>범위가 여전히 보이지 않으면, 복사된 범위와 동일한 효과<br>복사 범위가 유효하지 않으면 붙여넣지 않음<br>붙여넣기 대상의 보이는 행/열 수가 복사된 범위보다 작으면 전체 붙여넣기가 되지 않음 | 셀이 보이지 않으면 보이지 않은 상태로 유지되며, 셀이 보이게 되면 값이 표시됨<br>범위가 보이게 되면 복사된 범위와 동일한 효과 |
| **Formula && SparklineEx** | 셀과 연결됨 | 대상 셀이 보이지 않으면 다음의 보이는 유효한 셀에 붙여넣음<br>수식 참조는 보이지 않는 범위도 포함하므로, 결과가 이전과 다를 수 있음<br>DynamicArray 및 ArrayFormula 붙여넣기에는 지원되지 않음 (붙여넣으면 아무 것도 복사되지 않음) | 값 붙여넣기와 동일 |
| **Style (CellStyle, CellButton, formatter, CellType)** | 셀에 속함 | 대상 셀이 보이지 않으면 다음의 보이는 유효한 셀에 붙여넣음<br>범위가 여전히 보이지 않으면 복사된 범위와 동일한 효과 | 값 붙여넣기와 동일 |
| **DragMove** | 범위 선택 | 이동 사각형이 보이지 않는 범위를 고려하며, 범위가 확장됨 | 보이지 않는 범위를 포함하여 이동함 |
| **Shift Copied Cells** | 범위 복사 또는 잘라내기 | 아래/오른쪽으로 이동 시 보이지 않는 범위를 건너뛰며 이동 | 보이지 않는 범위를 포함하여 이동 |
| **CustomName** | 셀 또는 범위 참조 | 참조 타입이 셀이면 보이지 않는 범위를 건너뛰며 새로운 셀 참조로 변경됨 | 참조 타입이 범위이면 보이지 않는 범위를 포함하여 참조 |
| **Comment** | 셀에 속함 | 값 붙여넣기와 동일 | 값 붙여넣기와 동일 |
| **Tag** | 셀에 속함 | 값 붙여넣기와 동일 | 값 붙여넣기와 동일 |
| **Hyperlink** | 셀에 속함 | 값 붙여넣기와 동일 | 값 붙여넣기와 동일 |
| **BindingPath** | 셀에 속함 | 값 붙여넣기와 동일 | 값 붙여넣기와 동일 |
| **Header** | 셀에 속함 | 대상 행/열이 보이지 않으면, 헤더 영역 내에서 다음 보이는 유효한 행/열에 붙여넣음<br>복사된 행/열 수보다 붙여넣는 보이는 행/열 수가 작으면 일부만 붙여넣음 | 변경된 값만 복사/붙여넣기 수행 |
| **CellStates** | 셀에 속함 | 셀 값만 복사하며, 상태 정보는 복사하지 않음 | 셀 값만 복사하며, 상태 정보는 복사하지 않음 |
| **Sparkline** | 셀에 속함 | 데이터 범위 참조는 수식과 동일<br>스파크라인 영역은 붙여넣은 값과 동일함 | 값 붙여넣기와 동일<br>스파크라인의 데이터 범위가 보이지 않으면, 계산 시 보이지 않는 범위는 무시됨 |
| **DataValidation** | 범위 기준으로 저장 | 대상 셀이 보이지 않으면 다음의 보이는 유효한 셀에 붙여넣음<br>복사된 DataValidation 범위 붙여넣기 시 여러 셀로 저장됨<br>셀 숨김 상태에서는 숨겨진 상태로 유지되며, 셀이 보이면 표시됨 | 값 붙여넣기와 동일 |
| **ConditionalFormat** | 범위 기준으로 저장 | 대상 셀이 보이지 않으면 다음 보이는 유효한 셀에 붙여넣음<br>a) 범위를 복사해 붙여넣으면 보이지 않는 범위를 건너뛰며 두 개 이상의 범위로 나뉨<br>b) 같은 행/열 내 여러 범위를 복사하면 [a]처럼 작게 분할됨<br>c) 하나의 범위를 여러 범위에 붙여넣으면 [a]처럼 분할됨 | 복사 시 여러 범위는 지원되지 않음<br>셀 숨김 시 숨겨진 상태로 유지되며, 셀이 보이면 값이 표시됨<br>a) 보이게 되면 복사된 범위와 동일하게 표시됨<br>b) 여러 범위를 복사하면 하나로 붙여넣지만 내부적으로는 두 범위로 저장되어 별도로 계산됨<br>c) 여러 범위에 붙여넣으면 각각 따로 계산되며 동일한 결과를 표시함 |
| **Span** | 전체 범위 | 보이지 않는 범위를 건너뛰는 Span 붙여넣기는 지원되지 않음<br>붙여넣은 셀은 보이지 않는 범위를 건너뛰며 붙여넣음<br>범위가 보이면 복사된 Span과 동일 | 여전히 전체 범위로 붙여넣으며, 범위가 보이면 복사된 Span과 동일 |
| **Table** | 전체 테이블 | 테이블 일부만 복사할 경우 값 및 스타일만 보이는 셀에 붙여넣음<br>전체 테이블을 포함한 범위를 복사하여 보이지 않는 범위에 붙여넣으면 테이블 확장은 되지 않고 값만 붙여넣음<br>테이블 오른쪽 또는 아래에 붙여넣고 자동 확장을 지원하면 보이지 않는 범위를 포함하되, 해당 범위에는 값이 없음 | 테이블 일부만 복사하면 값 및 스타일만 붙여넣음<br>전체 테이블을 복사하면 테이블 전체가 붙여넣어짐<br>범위가 보이면 복사된 범위와 동일한 효과를 가짐 |

## 코드 예시

이 예제는 보이지 않는 범위에 데이터를 붙여넣지 않도록 설정하는 방법을 보여줍니다.

```javascript
workbook.options.pasteSkipInvisibleRange = true;
```

## SpreadJS 디자이너 예시

SpreadJS 디자이너에서 ‘설정(Settings)’ 탭을 클릭하고, ‘Spread 설정(Spread Settings)’ 그룹에서 ‘일반(General)’ 옵션을 선택하면 아래와 같이 ‘Spread 설정’ 대화 상자가 표시됩니다. 이 대화 상자에서 **클립보드(Clipboard)** 탭을 선택하여 **보이지 않는 범위 붙여넣기 생략 허용(Allow Paste Skip Invisible Range)** 옵션을 체크하거나 체크 해제하면, 스프레드시트에서 보이지 않는 범위에 데이터를 붙여넣을지 여부를 설정할 수 있습니다.
![](https://gcdocumentsitekrblob.blob.core.windows.net/document-site-files/images/8d606653-16a0-474d-b9dc-e2b4d01c2446/images/skipinvisblerangedesigner.png)