! 제품 버전을 정확하게 입력해 주세요.
제품 버전이 정확하게 기재되어 있지 않은 경우,
최신 버전을 기준으로 안내 드리므로
더욱 빠르고 명확한 안내를 위해
제품 버전을 정확하게 입력해 주세요!

파일 불러오기 이벤트 바인딩 - 디자이너 컴포넌트 > 온라인 스터디

본문 바로가기

디자이너컴포넌트 파일 불러오기 이벤트 바인딩 - 디자이너 컴포넌트

페이지 정보

작성자 GrapeCity 작성일 2022-02-16 08:49 조회 864회 댓글 0건

본문

최근 기업과 정부의 디지털 트랜스포메이션이 가속화됨에 따라, 기존의 Excel(엑셀) 문서를 온라인 시스템에 통합하고, 이러한 엑셀 문서를 웹 상에서 관리하고 편집하고자 하는 요구 사항이 점점 많아지고 있습니다.

이를 위해, 웹 상에 구글 시트(Google Sheet) 또는 MS Office 365와 같이 기존의 Excel 파일과 호환이 되고, 최종 사용자가 기존의 MS Excel을 사용하는 것과 동일한 방식으로 사용할 수 있는 Excel(엑셀) 에디터를 구현하는 것은 결코 쉬운 일이 아닐 것 입니다.

이러한 요구 사항에 맞추어 GrapeCity에서는 개발자 분들이 조금이라고 쉽고 빠르게 웹 상에 Excel(엑셀) 스프레드시트의 UI와 엑셀 기능들을 구현할 수 있는 컨트롤과 함수를 제공하는 SpreadJS를 제공하고 있으며, 또한, 완전한 Excel 에디터 기능을 원하시는 개발자 분들을 위해, SpreadJS를 기반으로 하는 SpreadJS 디자이너 컴포넌트를 제공하고 있습니다.



 

SpreadJS 디자이너 컴포넌트는 구글 시트, 온라인 MS Excel과 유사한 UI, 메뉴 구조 그리고 Excel의 기능을 웹 페이지 상에 구현하고자 하시는 분들을 위한 완전한 Front-End Excel 에디터입니다.

디자이너 컴포넌트에는 아래와 같은 요소들이 포함되어 있습니다.

  • 리본 메뉴
  • 수식 표시줄
  • 상태 표시줄
  • 측면 패널
  • 컨텍스트 메뉴

기본적으로 구성된 컴포넌트를 그대로 사용할 수도 있지만, 원하시는 형태에 맞게 커스터마이징하여 사용하실 수 있습니다.


이번 글에서는 디자이너 컴포넌트를 커스터마이징하는 방법 중, 파일 불러오기 이벤트를 바인딩하는 방법을 소개합니다.


"탭, 버튼, 컨텍스트 메뉴, 대화상자, 상태 표시줄, 사용자 지정 컴포넌트, 지역화"와 같은 추가적인 디자이너 컴포넌트를 커스터마이징 하는 방법을 확인 하고자 하시는 경우에는,

여기를 눌러 해당 글 목록을 확인하실 수 있습니다.


해당 내용들을 참고하여 디자이너 컴포넌트를 여러분이 원하는 대로 커스터마이징해 보시기 바랍니다.


아래 화면은 실제 디자이너 컴포넌트로 구현된 화면입니다. 상단의 HTML / JS 탭을 통해 소스코드를 확인하고 바로 수정해 결과를 확인해볼 수 있습니다.




파일 불러오기 이벤트 바인딩

디자이너 컴포넌트에서 파일을 불러올 때 이벤트를 발생시킬 수 있습니다.


이벤트

Designer.Events 클래스의 FileLoadingFileLoaded를 이용하여 이벤트 설정이 가능합니다.

이벤트설명
FileLoading디자이너로 파일을 불러오기 직전에 발생합니다.
FileLoaded디자이너로 파일을 불러온 직후에 발생합니다.

이러한 이벤트는 JSON, Excel, CSV 파일을 불러올 때 발생합니다.

FileType 옵션을 이용하여 특정 파일 형식에 대해 이벤트를 설정할 수 있습니다.


바인딩 메소드

Designer 클래스에서 bind, unbind, unbindAll 메소드를 사용하여 이벤트를 바인딩할 수 있습니다.

메소드설명
bind디자이너에 이벤트를 바인딩합니다. 이벤트 발생 시 실행할 이벤트 유형 및 함수를 적용합니다.
unbind디자이너에 대한 이벤트 바인딩을 제거합니다. 바인딩을 제거할 이벤트 유형 및 함수를 적용합니다.
unbindAll디자이너에 대한 모든 이벤트의 바인딩을 제거합니다.



예제

불러온 파일의 형식이 Excel이고, 시트 수가 3개 이상인 경우 시트 수를 표시하도록 FileLoading 이벤트를 설정해 보겠습니다.

또한 파일 가져오기가 완료되면 메시지를 표시할 것입니다.

  1. 디자이너 인스턴스를 초기화합니다.

    var designer = new GC.Spread.Sheets.Designer.Designer(document.getElementById("gc-designer-container"), config);

  2. 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);
          }
        };
      }
    );


  3. bind 메서드를 이용해, 파일 불러오기가 완료된 후 메시지를 표시하도록 FileLoaded 이벤트를 설정합니다.

    designer.bind(GC.Spread.Sheets.Designer.Events.FileLoaded, function(event,data){
      window.alert("파일 불러오기가 완료되었습니다.");
    });

    아래와 같이 실행되는 것을 확인하실 수 있습니다.



  4. FileLoaded 이벤트를 제거하려면, 아래와 같이 unbind 메서드를 사용합니다.

    designer.unbind(GC.Spread.Sheets.Designer.Events.FileLoaded);

  5. 모든 이벤트를 제거하려면, 아래와 같이 unbindAll 메서드를 사용합니다.

    designer.unbindAll();

     

"탭, 버튼, 컨텍스트 메뉴, 대화상자, 상태 표시줄, 사용자 지정 컴포넌트, 지역화"와 같은 추가적인 디자이너 컴포넌트를 커스터마이징 하는 방법을 확인 하고자 하시는 경우,

여기를 눌러 글 목록을 확인해 보세요.




지금 바로 SpreadJS를 다운로드하여 직접 테스트해보세요!

 
  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기

태그1

메시어스 홈페이지를 통해 제품에 대해서 더 자세히 알아 보세요!
홈페이지 바로가기
이메일 : sales-kor@mescius.com | 전화 : 1670-0583 | 경기도 과천시 과천대로 7길 33, 디테크타워 B동 1107호 메시어스(주) 대표자 : 허경명 | 사업자등록번호 : 123-84-00981 | 통신판매업신고번호 : 2013-경기안양-00331 ⓒ 2024 MESCIUS inc. All rights reserved.