[]
        
(Showing Draft Content)

수식 설정

SpreadJS에서는 Worksheet 클래스의 setFormula 메서드를 사용하여 셀에 수식을 설정할 수 있습니다. 아래 이미지는 다양한 수식이 적용된 후 B열에 표시되는 결과 값을 보여줍니다.


셀에 수식 설정하기

다음 코드 샘플은 셀에 수식을 설정하는 예제입니다.

window.onload = function()
{
   var spread =
   new GC.Spread.Sheets.Workbook(document.getElementById("ss"),
   {sheetCount:3});
   var activeSheet = spread.getActiveSheet();
   activeSheet.setRowCount(5);
   activeSheet.setColumnCount(2);
   activeSheet.getRange(-1, 1, -1, 1)
   .backColor("lightYellow")
   .width(120);
   activeSheet.setValue(0, 0, 10);
   activeSheet.setValue(1, 0, 20);
   activeSheet.setValue(2, 0, 30);
   activeSheet.setValue(3, 0, 40);
   activeSheet.setValue(4, 0, 50);

   // SUM 함수 설정 (모든 파라미터 값의 합).
   activeSheet.setFormula(0, 1, "SUM(A1:A5)");
 
   // PRODUCT 함수 설정 (모든 파라미터 값의 곱).
   activeSheet.setFormula(1, 1, "PRODUCT(A1:A5)");

   // AVERAGE 함수 설정 (모든 파라미터 값의 평균).
   activeSheet.setFormula(2, 1, "AVERAGE(A1:A5)");

   // 셀(0,0)과 셀(4,0)의 합을 계산하는 수식 설정.
   activeSheet.setFormula(3, 1, "A1 + A5");

   /* 셀(0,0)의 값이 10보다 크면 2를 곱하고, 그렇지 않으면 3을 곱하는 수식 설정 */
   activeSheet.setFormula(4, 1, "IF(A1>10, A1*2, A1*3)");
}

다른 시트 참조를 포함한 수식 설정

다른 시트를 참조하는 수식도 사용할 수 있습니다.

수식을 편집하는 동안 다른 시트를 참조하려면 시트 탭 또는 AllSheetsList 버튼에서 대상 시트를 선택한 후 해당 시트의 셀 범위를 선택합니다. AllSheetsList가 표시되어 있는 동안에는 키보드를 이용해 수식을 편집할 수 없습니다. 리스트 외의 시트를 클릭해 편집 상태를 종료해야 합니다.

예를 들어, 아래 이미지에서는 "Math - Grade 5" 시트의 C5~G5 값들을 참조하여 "Anna Mull" 시트에서 학생의 총점을 계산합니다.


cross-worksheet-reference


다음 코드 샘플은 교차 시트 참조 수식을 사용하는 예제입니다.

window.onload = function () {
    // 스프레드시트 생성
    let spread = new GC.Spread.Sheets.Workbook(document.getElementById("ss"), { sheetCount: 2 });
    initSpread(spread);
};

function initSpread(spread) {
    spread.suspendPaint();
    // 템플릿 로드
    spread.fromJSON(template);

    // Anna Mull 시트에 수식 설정
    let sheet = spread.getSheetFromName("Anna Mull")

    sheet.setText(3,0,"Average Score"); 
    sheet.setFormula(3,1,"=Average('Math - Grade 5'!C5:G5)"); 
    sheet.setText(4,0,"Total Assignment Score"); 
	sheet.setFormula(4,1, "=Sum('Math - Grade 5'!C5:G5)");
    spread.resumePaint();
}

SUBTOTAL 수식 설정하기

SUBTOTAL 수식을 설정할 수도 있습니다. 아래 이미지는 이를 보여줍니다.



다음 코드 샘플은 SUBTOTAL 수식을 사용하는 예제입니다.

$(document).ready(function ()
{
    var spread =
    new GC.Spread.Sheets.Workbook(document.getElementById("ss"),
    {sheetCount:3});
   
    var activeSheet = spread.getActiveSheet();
    activeSheet.setColumnCount(2);
    activeSheet.options.colHeaderAutoText = GC.Spread.Sheets.HeaderAutoText.blank;
    activeSheet.setText(0, 1, "Value", GC.Spread.Sheets.SheetArea.colHeader);
    activeSheet.options.gridline = {showHorizontalGridline: false};
    activeSheet.setText(3, 0, "Sub-Total1");
    activeSheet.setText(7, 0, "Sub-Total2");
    activeSheet.setText(8, 0, "Aggregate");
    activeSheet.getRange(3, -1, 1, -1).backColor("lemonChiffon");
    activeSheet.getRange(7, -1, 1, -1).backColor("lemonChiffon");
    activeSheet.getRange(8, -1, 1, -1).backColor("lightPink");
    activeSheet.setValue(0, 1, 100);
    activeSheet.setValue(1, 1, 200);
    activeSheet.setValue(2, 1, 300);
    activeSheet.setValue(4, 1, 400);
    activeSheet.setValue(5, 1, 500);
    activeSheet.setValue(6, 1, 600);
  
    // SUBTOTAL 함수를 사용해 소계 및 총계 설정
   activeSheet.setFormula(3, 1, "SUBTOTAL(9,B1:B3)");
   activeSheet.setFormula(7, 1, "SUBTOTAL(9,B5:B7)");
   activeSheet.setFormula(8, 1, "SUBTOTAL(9,B1:B7)");
});