calculate (method)

시트에 설정된 Formula속성(attribute+Formula) 계산을 시트 전체에 대해 실행합니다.
부분 재계산이 필요한 경우 recalculate 또는 recalculateRows를 사용하세요.

Syntax

void calculate( render, calconly, fixedonly );

Parameters

Name Type Required Description
render boolean 선택 Formula 컬럼 화면 반영 여부 (일반 컬럼은 rerender() 별도 호출 필요)
0(false):반영 안 함
1(true):Formula 컬럼만 즉시 반영 (default)
calconly boolean 선택 Row.CanFormula = 1 인 행만 계산할 지 여부
0(false):전체 행 계산 (default)
1(true):Row.CanFormula = 1 인 행들만 계산
fixedonly boolean 선택 Fixed 행들(Header, Filter, FormulaRow)만 계산할지 여부
0(false):전체 행 계산 (default)
1(true):Fixed 행들(Header, Filter, FormulaRow)만 계산

일반 + Formula 컬럼 모두 변경 시 calculate(true) + rerender(1)은 렌더 2회 발생.
calculate(false) + rerender(1)로 일괄 반영이 성능상 유리.

Return Value

none

Example

// 외부에서 여러 행의 값을 일괄 변경 후 시트 전체 재계산
// setValue를 calc:0/render:0으로 호출 → 마지막에 calculate + rerender로 일괄 마무리
var rows = sheet.getDataRows();
for (var i = 0; i < rows.length; i++) {
    sheet.setValue({row: rows[i], col: "Discount", val: 0.1, calc: 0, render: 0});
}
sheet.calculate(false, false);   // Formula 계산만 (render=true면 Formula 컬럼만 반영 → 렌더 2회 발생)
sheet.rerender(1);               // 모든 변경 화면 일괄 반영 (렌더 1회로 마무리)

Read More

Since

product version desc
core 8.0.0.0 기능 추가
core 8.0.0.8 render 인자 default 값 변경(false -> true)
core 8.0.0.11 fixedonly 추가