# 파일 가져오기 이벤트 바인딩

## Content

파일 가져오기 작업 중에 SpreadJS 디자이너 컴포넌트에 기능을 추가할 수 있습니다.

## 바인딩 메서드

디자이너 컴포넌트는 [Designer](/spreadjs/api/designer/classes/GC.Spread.Sheets.Designer.Designer) 클래스에서 이벤트 바인딩 메서드인 bind, unbind, unbindAll을 제공합니다. 이 메서드들은 디자이너 컴포넌트에서 이벤트를 추가하거나 제거하는 데 도움이 됩니다.

| **메서드** | **설명** |
| --- | --- |
| bind | 디자이너 컴포넌트에 이벤트를 바인딩합니다. 이벤트 유형과 이벤트 발생 시 실행할 함수를 인자로 받습니다. |
| unbind | 디자이너 컴포넌트에 바인딩된 이벤트를 제거합니다. 이벤트 유형과 바인딩을 해제할 함수를 인자로 받습니다. |
| unbindAll | 디자이너 컴포넌트에 바인딩된 모든 이벤트를 제거합니다. |

## 이벤트

디자이너 컴포넌트는 [Designer.Events](/spreadjs/api/designer/classes/GC.Spread.Sheets.Designer.Events) 클래스에서 파일 가져오기 관련 이벤트인 FileLoading과 FileLoaded를 제공합니다. 이 이벤트들은 bind 메서드에서 문자열로 전달되어 SpreadJS 디자이너 컴포넌트에서 사용자 지정 기능을 수행할 수 있게 합니다.

| 이벤트 | 설명 |
| --- | --- |
| FileLoading | Spread.Sheets.Designer 파일 작업으로 인해 파일이 로드될 때 발생합니다. |
| FileLoaded | Spread.Sheets.Designer 파일 작업으로 인해 파일이 로드된 후 발생합니다. |

이 이벤트들은 JSON, Excel, CSV 파일을 SpreadJS로 가져올 때 발생하지만, [FileType](/spreadjs/api/designer/enums/GC.Spread.Sheets.Designer.FileType) 열거형 옵션(Json, Excel, CSV 등)을 사용해 형식별 이벤트도 지정할 수 있습니다.

## 예제

다음 코드 예제는 가져온 파일 형식이 Excel이고 워크시트 수가 3개 이상일 경우 FileLoading 이벤트를 설정해 워크시트 수를 표시합니다. 또한 파일 가져오기가 완료되면 메시지를 표시합니다.

```JavaScript
var designer = new GC.Spread.Sheets.Designer.Designer(document.getElementById("designerHost"), '', spread);

// bind 메서드에서 FileLoading 이벤트 사용하기
designer.bind(GC.Spread.Sheets.Designer.Events.FileLoading, function(type, message){
    if (message.fileType = GC.Spread.Sheets.Designer.FileType.Excel){
        let spreadJsonData = message.data;
        if(spreadJsonData.sheetCount >= 3) {
            window.alert("Number of worksheets: " + spreadJsonData.sheetCount);
        }
    };
});            

// bind 메서드에서 FileLoaded 이벤트 사용하기
designer.bind(GC.Spread.Sheets.Designer.Events.FileLoaded, function(event,data){
    window.alert("File has loaded");
});

// unbind 메서드를 사용하여 FileLoaded 이벤트 제거하기
designer.unbind(GC.Spread.Sheets.Designer.Events.FileLoaded);

// unbindAll 메서드를 사용하여 모든 이벤트 제거하기
designer.unbindAll();
```

![theme6.a6ace5.gif](https://gcdocumentsitekrblob.blob.core.windows.net/document-site-files/images/216c2e7e-5246-4c37-8843-3854aa344a6a/theme6.a6ace5.f1a788.gif?width=1200)