# 드래그 앤 드롭

## Content

SpreadJS는 마우스를 사용하여 셀, 셀 범위, 테이블 내 셀을 드래그하여 이동하는 기능을 지원합니다. 선택한 셀, 열, 행 또는 셀 범위의 가장자리에 마우스 포인터를 올린 후, 클릭하여 원하는 위치로 드래그하면 해당 범위를 이동할 수 있습니다.
다음 표는 Spread 워크시트에서 지원되는 동작 및 발생하는 이벤트를 나타냅니다:

| **동작** | **셀 동작** | **테이블 동작** |
| --- | ---- | ------ |
| Drag | 잘라내기-붙여넣기 | 잘라내기 - 셀 아래로 이동 |
| Drag + Ctrl | 복사-붙여넣기 | 복사 - 셀 아래로 이동 |
| @rows=2:Drag + Shift | 잘라내기 - 셀 아래로 이동 | @rows=2:잘라내기 붙여넣기 |
| 잘라내기 - 셀 오른쪽으로 이동 |
| @rows=2:Drag + Ctrl + Shift | 복사 - 셀 아래로 이동 | @rows=2:복사 붙여넣기 |
| 복사-셀 오른쪽으로 이동 |

**allowUserDragDrop** 옵션을 사용하여 드래그 앤 드롭 동작을 허용하거나 제한할 수 있습니다. 이 옵션은 `boolean` 값을 받으며, 기본값은 `true`입니다. 기본적으로 활성 시트나 테이블에서 선택된 셀 또는 셀 범위를 드래그 앤 드롭할 수 있도록 허용합니다.
다음 코드 샘플은 워크시트에서 셀의 드래그 앤 드롭 기능을 비활성화하는 방법을 보여줍니다.

```javascript
var spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"),{sheetCount:3});
var sheet = spread.getActiveSheet();

// 셀의 드래그 앤 드롭 비활성화
spread.options.allowUserDragDrop = false;
```

드래그 앤 드롭 작업을 사용할 때 다음 작업은 수행할 수 없습니다:

* 피벗 테이블 영역으로 셀을 드래그하는 작업
* 다중 범위를 동시에 드래그하는 작업
* 테이블 또는 피벗 테이블에 영향을 주는 셀 이동
* 테이블 영역과 크기가 일치하지 않는 셀 범위를 테이블 내에서 이동하는 작업

## 셀 작업

SpreadJS에서는 셀 또는 셀 범위에 대해 다음과 같은 드래그 앤 드롭 작업을 수행할 수 있습니다:

| **동작** | **예시** |
| --- | --- |
| 드래그 | ![](https://gcdocumentsitekrblob.blob.core.windows.net/document-site-files/images/8d606653-16a0-474d-b9dc-e2b4d01c2446/celldrag.b45a26.gif) |
| 드래그 + Ctrl | ![](https://gcdocumentsitekrblob.blob.core.windows.net/document-site-files/images/8d606653-16a0-474d-b9dc-e2b4d01c2446/cellctrl.e6a418.gif) |
| 드래그 + Shift | ![](https://gcdocumentsitekrblob.blob.core.windows.net/document-site-files/images/8d606653-16a0-474d-b9dc-e2b4d01c2446/cellshift.a52114.gif) |
| 드래그 + Ctrl + Shift | ![](https://gcdocumentsitekrblob.blob.core.windows.net/document-site-files/images/8d606653-16a0-474d-b9dc-e2b4d01c2446/cellshiftctrl.1837cf.gif) |

## 테이블 작업

SpreadJS에서는 테이블 내 셀 또는 셀 범위에 대해 다음과 같은 드래그 앤 드롭 작업을 수행할 수 있습니다:

| **작업** | **예시** |
| --- | --- |
| 드래그 | ![](https://gcdocumentsitekrblob.blob.core.windows.net/document-site-files/images/8d606653-16a0-474d-b9dc-e2b4d01c2446/tabledrag.57c70a.gif) |
| 드래그 + Ctrl | ![](https://gcdocumentsitekrblob.blob.core.windows.net/document-site-files/images/8d606653-16a0-474d-b9dc-e2b4d01c2446/tableDragCtrl.c93f6a.gif) |
| 드래그 + Shift | ![](https://gcdocumentsitekrblob.blob.core.windows.net/document-site-files/images/8d606653-16a0-474d-b9dc-e2b4d01c2446/tabledragshift.9d94e2.gif) |
| 드래그 + Ctrl + Shift | ![](https://gcdocumentsitekrblob.blob.core.windows.net/document-site-files/images/8d606653-16a0-474d-b9dc-e2b4d01c2446/tablectrl+shift.e5d5fa.gif) |

>type=warning
> **참고:** 위 테이블 동작은 시작 범위와 종료 범위가 헤더 행을 제외한 동일한 테이블 내 전체 행 단위여야 적용됩니다. 그렇지 않으면 일반 셀 동작(cell behavior)이 적용됩니다.