시트에 설정된 Formula 및 속성(attribute+Formula) 계산을 시트 전체에 대해 실행합니다.
부분 재계산이 필요한 경우 recalculate 또는 recalculateRows를 사용하세요.
void calculate( render, calconly, fixedonly );
| 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)로 일괄 반영이 성능상 유리.
none
// 외부에서 여러 행의 값을 일괄 변경 후 시트 전체 재계산
// 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회로 마무리)
| product | version | desc |
|---|---|---|
| core | 8.0.0.0 | 기능 추가 |
| core | 8.0.0.8 | render 인자 default 값 변경(false -> true) |
| core | 8.0.0.11 | fixedonly 추가 |