디자이너컴포넌트 파일 불러오기 이벤트 바인딩 - 디자이너 컴포넌트
페이지 정보
작성자 GrapeCity 작성일 2022-02-16 08:49 조회 864회 댓글 0건본문
관련링크
최근 기업과 정부의 디지털 트랜스포메이션이 가속화됨에 따라, 기존의 Excel(엑셀) 문서를 온라인 시스템에 통합하고, 이러한 엑셀 문서를 웹 상에서 관리하고 편집하고자 하는 요구 사항이 점점 많아지고 있습니다.
이를 위해, 웹 상에 구글 시트(Google Sheet) 또는 MS Office 365와 같이 기존의 Excel 파일과 호환이 되고, 최종 사용자가 기존의 MS Excel을 사용하는 것과 동일한 방식으로 사용할 수 있는 Excel(엑셀) 에디터를 구현하는 것은 결코 쉬운 일이 아닐 것 입니다.
이러한 요구 사항에 맞추어 GrapeCity에서는 개발자 분들이 조금이라고 쉽고 빠르게 웹 상에 Excel(엑셀) 스프레드시트의 UI와 엑셀 기능들을 구현할 수 있는 컨트롤과 함수를 제공하는 를 제공하고 있으며, 또한, 완전한 Excel 에디터 기능을 원하시는 개발자 분들을 위해, SpreadJS를 기반으로 하는 를 제공하고 있습니다.
는 구글 시트, 온라인 MS Excel과 유사한 UI, 메뉴 구조 그리고 Excel의 기능을 웹 페이지 상에 구현하고자 하시는 분들을 위한 완전한 Front-End Excel 에디터입니다.
디자이너 컴포넌트에는 아래와 같은 요소들이 포함되어 있습니다.
- 리본 메뉴
- 수식 표시줄
- 상태 표시줄
- 측면 패널
- 컨텍스트 메뉴
기본적으로 구성된 컴포넌트를 그대로 사용할 수도 있지만, 원하시는 형태에 맞게 커스터마이징하여 사용하실 수 있습니다.
이번 글에서는 디자이너 컴포넌트를 커스터마이징하는 방법 중, 파일 불러오기 이벤트를 바인딩하는 방법을 소개합니다.
"탭, 버튼, 컨텍스트 메뉴, 대화상자, 상태 표시줄, 사용자 지정 컴포넌트, 지역화"와 같은 추가적인 디자이너 컴포넌트를 커스터마이징 하는 방법을 확인 하고자 하시는 경우에는,
를 눌러 해당 글 목록을 확인하실 수 있습니다.
해당 내용들을 참고하여 디자이너 컴포넌트를 여러분이 원하는 대로 커스터마이징해 보시기 바랍니다.
아래 화면은 실제 디자이너 컴포넌트로 구현된 화면입니다. 상단의 HTML / JS 탭을 통해 소스코드를 확인하고 바로 수정해 결과를 확인해볼 수 있습니다.
디자이너 컴포넌트에서 파일을 불러올 때 이벤트를 발생시킬 수 있습니다.
이벤트
클래스의 과 를 이용하여 이벤트 설정이 가능합니다.
이벤트 | 설명 |
---|---|
FileLoading | 디자이너로 파일을 불러오기 직전에 발생합니다. |
FileLoaded | 디자이너로 파일을 불러온 직후에 발생합니다. |
이러한 이벤트는 JSON, Excel, CSV 파일을 불러올 때 발생합니다.
옵션을 이용하여 특정 파일 형식에 대해 이벤트를 설정할 수 있습니다.
바인딩 메소드
클래스에서 , , 메소드를 사용하여 이벤트를 바인딩할 수 있습니다.
메소드 | 설명 |
---|---|
bind | 디자이너에 이벤트를 바인딩합니다. 이벤트 발생 시 실행할 이벤트 유형 및 함수를 적용합니다. |
unbind | 디자이너에 대한 이벤트 바인딩을 제거합니다. 바인딩을 제거할 이벤트 유형 및 함수를 적용합니다. |
unbindAll | 디자이너에 대한 모든 이벤트의 바인딩을 제거합니다. |
예제
불러온 파일의 형식이 Excel이고, 시트 수가 3개 이상인 경우 시트 수를 표시하도록 FileLoading 이벤트를 설정해 보겠습니다.
또한 파일 가져오기가 완료되면 메시지를 표시할 것입니다.
디자이너 인스턴스를 초기화합니다.
var designer = new GC.Spread.Sheets.Designer.Designer(document.getElementById("gc-designer-container"), config);
bind 메서드를 이용해 불러온 파일의 형식이 Excel 이고, 시트 수가 3개 이상인 경우 시트 수를 표시하도록 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("시트 수: " + spreadJsonData.sheetCount); } }; } );
bind 메서드를 이용해, 파일 불러오기가 완료된 후 메시지를 표시하도록 FileLoaded 이벤트를 설정합니다.
designer.bind(GC.Spread.Sheets.Designer.Events.FileLoaded, function(event,data){ window.alert("파일 불러오기가 완료되었습니다."); });
아래와 같이 실행되는 것을 확인하실 수 있습니다.
FileLoaded 이벤트를 제거하려면, 아래와 같이 unbind 메서드를 사용합니다.
designer.unbind(GC.Spread.Sheets.Designer.Events.FileLoaded);
모든 이벤트를 제거하려면, 아래와 같이 unbindAll 메서드를 사용합니다.
designer.unbindAll();
"탭, 버튼, 컨텍스트 메뉴, 대화상자, 상태 표시줄, 사용자 지정 컴포넌트, 지역화"와 같은 추가적인 디자이너 컴포넌트를 커스터마이징 하는 방법을 확인 하고자 하시는 경우,
를 눌러 글 목록을 확인해 보세요.
지금 바로 SpreadJS를 다운로드하여 직접 테스트해보세요!
댓글목록
등록된 댓글이 없습니다.