setValue (method)

셀의 값을 지정한 값으로 변경합니다.
기본적으로 이 함수를 호출해도 편집 관련 이벤트(onAfterChange, onEndEdit 등)는 발생하지 않습니다.
단, 데이터가 편집 상태일 때 setValue를 호출하면 onEndEdit 이벤트가 발생합니다.
이 경우 ignoreEvent옵션을 사용하여 이벤트 발생을 방지할 수 있습니다.
값 변경 시 Change 이벤트 처리가 필요한 경우 OnChange 이벤트를 사용해야 합니다.

Syntax

boolean setValue( row, col, val, render, ignoreEvent, noCalc );

Parameters

Name Type Required Description
row object 필수 데이터 로우 객체
col string 필수 열이름
val number | string 필수 입력값(셀 타입에 맞는 값)
render boolean 선택 값 변경 시 즉시 화면에 반영할지 여부입니다.
false(0)로 설정할 경우 화면에 즉시 반영되지 않으며, 작업 완료 후 rerender() 또는 상황에 따라 refreshCell, refreshRow, renderBody 등의 렌더링 함수를 호출해야 합니다.
true(1): 즉시 반영 (default)
ignoreEvent object | boolean 선택 setValue 호출 시 발생하는 이벤트를 제어하는 옵션입니다.
객체 형태로 설정할 수 있으며, 이벤트 이름을 key로 지정하고 true로 설정하면 해당 이벤트는 발생하지 않습니다.
true / false로 설정할 경우 onEndEdit 이벤트만 제어합니다.
calc boolean 선택 포뮬러 계산 여부
해당 기능을 0(false)로 설정할 경우 setValue시 포뮬러 계산이 이뤄지지 않습니다.
포뮬러를 반영하려면 이후 반드시 calculate()를 호출해줘야 됩니다.(default:1)

ignoreEvent Options

Name Type Required Description
OnChange boolean 선택 setValue시 발생하는 OnChange 이벤트 발생 여부를 제어합니다. true 리턴시 해당 이벤트가 발생하지 않습니다. (default: 0(false))
OnSame boolean 선택 setValue시 발생하는 OnSame 이벤트 발생 여부를 제어합니다. true 리턴시 해당 이벤트가 발생하지 않습니다. (default: 0(false))
onEndEdit boolean 선택 편집상태에서 setValue를 할 경우, 기본적으로 onEndEdit 이벤트가 발생합니다.
이때 발생하는 onEndEdit 이벤트의 발생 여부를 제어합니다.
true를 리턴할 경우, 해당 이벤트가 발생하지 않습니다. (default: 0(false))

Return Value

boolean : 값의 변경 여부 (값이 변경되면 1(true), 변경되지 않으면(기존값과 동일한 경우) 0(false))

Example

// ================================
// 데이터행 변경 예제
// ================================

// 5번째 행 가져오기 (row 객체의 id가 AR5이다.)
var r5 = sheet.getRowById("AR5");

// AR5 데이터 행의 StartDate, EndDate 값을 변경
sheet.setValue( r5, "StartDate", "20160105");
sheet.setValue({row:r5, col:"EndDate", val:"20160315"});

//OnChange, onEndEdit 발생시키지 않음
sheet.setValue({row:r5, col:"A", val:10, ignoreEvent:{onEndEdit:true,OnChange:true}});

// ================================
// 데이터행 변경 예제
// 여러 행 반복 처리
// ================================

var Rows = sheet.getDataRows(); //시트의 모든 데이터 행 추출

for(var i=0; i<Rows.length; i++){
    //마감열(Name:close_data) 컬럼 값 일괄 변경
     // render를 false(0)로 설정하여 화면 렌더링을 늦추면 속도가 빨라짐
    sheet.setValue({row:Rows[i], col:"close_data", val:"변경", render:0}); 
    
}
// 화면에 변경 사항 적용
sheet.rerender(1);

// ================================
//헤더행 변경 예제
// ================================

var hr = sheet.getRowById("Header"); // 최상단 헤더 행 가져오기

// 특정 컬럼 헤더 텍스트 변경
sheet.setValue(hr, "SalesToday", "매출");
sheet.setValue(hr, "SalesSum", "매출");  
sheet.setValue(hr, "CostToday", "비용");
sheet.setValue(hr, "CostSum", "비용"); 

// 헤더 텍스트 변경 후 경우에 따라 Merge 재적용(행 기준 병합)
sheet.setAutoMerge( {headerMerge:2});

// ================================
//합계행 변경 예제
// ================================

//(Col) FormulaRow 설정한 합계 컬럼은 자동 계산되므로 setValue로 직접 변경할 수 없습니다.
var sumRow = sheet.getRowById("FormulaRow"); // 합계행 가져오기

//(Col) FormulaRow가 적용되지 않은 컬럼은 변경 가능
sheet.setValue(sumRow , "Notes", "합계 참조용 메모");

Read More

Since

product version desc
core 8.0.0.0 기능 추가
core 8.0.0.11 ignoreOnEndEdit 추가
core 8.2.0.21 ignoreEvent 추가, ignoreOnEndEdit deprecated 처리
core 8.3.0.45 calc 추가