[]
파일 가져오기 작업 중에 SpreadJS 디자이너 컴포넌트에 기능을 추가할 수 있습니다.
디자이너 컴포넌트는 Designer 클래스에서 이벤트 바인딩 메서드인 bind, unbind, unbindAll을 제공합니다. 이 메서드들은 디자이너 컴포넌트에서 이벤트를 추가하거나 제거하는 데 도움이 됩니다.
메서드 | 설명 |
---|---|
bind | 디자이너 컴포넌트에 이벤트를 바인딩합니다. 이벤트 유형과 이벤트 발생 시 실행할 함수를 인자로 받습니다. |
unbind | 디자이너 컴포넌트에 바인딩된 이벤트를 제거합니다. 이벤트 유형과 바인딩을 해제할 함수를 인자로 받습니다. |
unbindAll | 디자이너 컴포넌트에 바인딩된 모든 이벤트를 제거합니다. |
디자이너 컴포넌트는 Designer.Events 클래스에서 파일 가져오기 관련 이벤트인 FileLoading과 FileLoaded를 제공합니다. 이 이벤트들은 bind 메서드에서 문자열로 전달되어 SpreadJS 디자이너 컴포넌트에서 사용자 지정 기능을 수행할 수 있게 합니다.
이벤트 | 설명 |
---|---|
FileLoading | Spread.Sheets.Designer 파일 작업으로 인해 파일이 로드될 때 발생합니다. |
FileLoaded | Spread.Sheets.Designer 파일 작업으로 인해 파일이 로드된 후 발생합니다. |
이 이벤트들은 JSON, Excel, CSV 파일을 SpreadJS로 가져올 때 발생하지만, FileType 열거형 옵션(Json, Excel, CSV 등)을 사용해 형식별 이벤트도 지정할 수 있습니다.
다음 코드 예제는 가져온 파일 형식이 Excel이고 워크시트 수가 3개 이상일 경우 FileLoading 이벤트를 설정해 워크시트 수를 표시합니다. 또한 파일 가져오기가 완료되면 메시지를 표시합니다.
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();