개발꿀팁 서로 다른 워크북에서 사용자 정의 함수 사용하기
추천0 비추천 0
페이지 정보
작성자 GCK루카스 작성일 2022-11-30 16:13 조회 355회 댓글 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. 특정 시트에만 등록하고 해당 시트에서만 사용할 수 있도록 하는 방법
특정 시트에만 등록하기 위해서는 사용자 정의 함수 생성 후 아래 코드를 이용하여 특정 시트에만 등록합니다.
이 경우에는 같은 워크북이라도 다른 시트에서는 해당 사용자 정의 함수를 사용할 수 없습니다.
- 아래 샘플에서 Sheet1과 Sheet2 비교
spread.getSheet(0).addCustomFunction(factorial);
2. 글로벌 함수로 등록하고 워크북의 모든 시트에서 사용할 수 있도록 하는 방법
사용자 정의 함수를 글로벌로 등록하고 워크북의 모든 시트에서 사용합니다.
- 아래 샘플에서 Sheet1과 Sheet2 비교
GC.Spread.CalcEngine.Functions.defineGlobalCustomFunction("FACTORIAL", factorial);
위 두 가지 방식 중 한 가지를 사용하여 사용자 정의 함수를 생성하고 사용할 수 있습니다.
하지만 해당 워크북을 ssjson으로 내보내기 시에는 사용자 정의 함수가 함께 내보내기 되지 않습니다.
내보낸 ssjson을 다른 시스템에서 불러와 사용자 정의 함수를 사용하려면 해당 시스템에도 동일하게 사용자 정의 함수가 생성되어 있어야 합니다.
이러한 케이스에서 사용하려면, 사용자 정의 함수를 별도의 js 파일로 작성하고 이 파일을 두 시스템에서 참조하면 ssjson을 불러와 사용할 수 있습니다.
사용자 정의 함수가 생성된 js 파일을 참조하고, 다른 시스템에서 사용자 정의 함수를 사용하고 내보내기한 ssjson을 불러오는 샘플은 아래에서 확인하실 수 있습니다.
댓글목록
등록된 댓글이 없습니다.