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

서로 다른 워크북에서 사용자 정의 함수 사용하기 > 지식 쉐어링

본문 바로가기

SpreadJS

지식 쉐어링

개발꿀팁 서로 다른 워크북에서 사용자 정의 함수 사용하기

페이지 정보

작성자 GCK루카스 작성일 2022-11-30 16:13 조회 347회 댓글 0건

본문

SpreadJS는 사용자 정의 함수 기능을 지원합니다.

사용자 정의 함수 기능을 이용하여 원하는 함수를 생성하고 사용할 수 있습니다.

간단히 사용자 정의 함수를 생성하는 샘플 코드는 아래와 같습니다.
        function FactorialFunction() {
            this.name = "FACTORIAL";
            this.maxArgs = 1;
            this.minArgs = 1;
        }
        FactorialFunction.prototype = new GC.Spread.CalcEngine.Functions.Function();
        FactorialFunction.prototype.evaluate = function (arg) {
            var result = 1;
            if (arguments.length === 1 && !isNaN(parseInt(arg))) {
                for (var i = 1; i <= arg; i++) {
                    result = i * result;
                }
                return result;
            }
            return "#VALUE!";
        };
        var factorial = new FactorialFunction();
  
생성한 사용자 정의 함수를 등록하는 방법은 두 가지가 있습니다.

  1. 특정 시트에만 등록하고 해당 시트에서만 사용할 수 있도록 하는 방법
  2. 글로벌 함수로 등록하고 워크북의 모든 시트에서 사용할 수 있도록 하는 방법 

1. 특정 시트에만 등록하고 해당 시트에서만 사용할 수 있도록 하는 방법

특정 시트에만 등록하기 위해서는 사용자 정의 함수 생성 후 아래 코드를 이용하여 특정 시트에만 등록합니다.
이 경우에는 같은 워크북이라도 다른 시트에서는 해당 사용자 정의 함수를 사용할 수 없습니다.
- 아래 샘플에서 Sheet1과 Sheet2 비교
spread.getSheet(0).addCustomFunction(factorial);

 

 

2. 글로벌 함수로 등록하고 워크북의 모든 시트에서 사용할 수 있도록 하는 방법

사용자 정의 함수를 글로벌로 등록하고 워크북의 모든 시트에서 사용합니다.
- 아래 샘플에서 Sheet1과 Sheet2 비교
GC.Spread.CalcEngine.Functions.defineGlobalCustomFunction("FACTORIAL", factorial);


위 두 가지 방식 중 한 가지를 사용하여 사용자 정의 함수를 생성하고 사용할 수 있습니다.
하지만 해당 워크북을 ssjson으로 내보내기 시에는 사용자 정의 함수가 함께 내보내기 되지 않습니다.
내보낸 ssjson을 다른 시스템에서 불러와 사용자 정의 함수를 사용하려면 해당 시스템에도 동일하게 사용자 정의 함수가 생성되어 있어야 합니다.
이러한 케이스에서 사용하려면, 사용자 정의 함수를 별도의 js 파일로 작성하고 이 파일을 두 시스템에서 참조하면 ssjson을 불러와 사용할 수 있습니다.

사용자 정의 함수가 생성된 js 파일을 참조하고, 다른 시스템에서 사용자 정의 함수를 사용하고 내보내기한 ssjson을 불러오는 샘플은 아래에서 확인하실 수 있습니다.
  • 페이스북으로 공유
  • 트위터로  공유
  • 링크 복사
  • 카카오톡으로 보내기

댓글목록

등록된 댓글이 없습니다.

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

인기글

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