[]
        
(Showing Draft Content)

FlexSheet 사용자 정의 함수

FlexSheet에서 제공되는 함수는 사용되는 대부분의 시나리오를 다루지만, 사용자는 추가 함수가 필요할 수 있습니다.


FlexSheet는 사용자 정의 함수를 추가할 수 있는 두 가지 함수를 제공합니다: addFunctionunknownFunction.


addFunction 메서드는 기본 제공 함수 목록에 사용자 지정 함수를 추가합니다.


일반적으로 addFunction 메서드는 FlexSheet 계산 엔진에 사용자 정의 함수를 추가하는 가장 좋은 방법입니다. 그러나 함수 이름이 가변적이거나 미리 알 수 없는 시나리오가 있습니다.


이러한 상황에서 unknownFunction 이벤트를 사용하여 함수의 값을 동적으로 조회할 수 있습니다. FlexSheet는 알 수 없는 함수 이름을 감지하면 unknownFunction 이벤트를 발생시키고 함수 이름과 매개변수를 포함하는 매개변수를 제공합니다.그런 다음 이벤트의 핸들러는 결과를 계산하고 값을 반환합니다.

import * as wjFlexSheet from '@mescius/wijmo.grid.sheet';

let customFuncSheet = new wjFlexSheet.FlexSheet('#customFuncSheet');

customFuncSheet.addFunction('customSumProduct', function () {
    var result = 0,
        range1 = arguments[0],
        range2 = arguments[1];

    if (range1.length > 0 && range1.length === range2.length && range1[0].length === range2[0].length) {
        for (var i = 0; i < range1.length; i++) {
            for (var j = 0; j < range1[0].length; j++) {
                result += range1[i][j] * range2[i][j];
            }
        }
    }
    return result;
}, 'Custom SumProduct Function', 2, 2);

customFuncSheet.unknownFunction.addHandler(function (sender, e) {
    var result = '';
    if (e.params) {
        for (var i = 0; i < e.params.length; i++) {
            result += e.params[i];
        }
    }
    e.value = result;
});