# getDataRows (method)

> 시트가 가지고 있는 전체 데이터 행을 리턴합니다.

### getDataRows 함수로 Row 객체 접근시 주의사항

- Text 컬럼(`Type:"Text"`)에 숫자 데이터를 조회하면 → Row 객체에는 숫자형 값이 들어 있음
  - 문자 형태로 사용하려면 OrigSearchData를 설정하거나 getValue 함수를 이용
- Date 컬럼(Type: "Date")에서 `DataFormat`에 맞는 데이터를 조회해도 → Row 객체에 숫자형(timestamp) 값이 들어 있음
  - `DataFormat`에 맞는(ex : 20260101) 형태로 사용하려면 getValue 또는 dateToString 사용
- Row 객체에 직접 접근하여 값을 변경해도 → `행 상태(Changed)에는 영향을 주지 않음`

### Syntax

    array getDataRows( noSubTotal);

### Parameters

Name | Type | Required | Description
--- | --- | --- | ---
noSubTotal | `boolean` | 선택 | 소계/누계 행을 제외할지 여부 `0(false)`:소계/누계 행 포함 (`default`) `1(true)`:소계/누계 행 제외

### Return Value

array[row object] : 데이터 로우 객체를 담고있는 배열

### Example

    // 전체 데이터행을 가져온다.
    var Rows = sheet.getDataRows();

    for(var i=0; i<Rows.length; i++){
        // 마감열(saveName:close_data)에 값을 일괄변경하는 경우, render속성을 꺼야 속도가 빠르다.
        sheet.setValue({row:Rows[i], col:"close_data", val:"변경", render:0});
        //Rows[i].close_data = "변경"; row 객체에 직접 값을 변경하면 행 상태(Changed)가 변경되지 않아 저장 대상에서 제외됩니다.
    }
    //변경사항 적용한다.
    sheet.rerender(1);

    // 보이는 행의 합계, 평균, 최대값, 최소값 구하기
    var col = "IntData";
    // row.Visible — 0:감춤, 1:보임
    var visibleRows = sheet.getDataRows().filter(function(row){ return row.Visible; });

    var sum = visibleRows.reduce(function(a, c){ return a + c[col]; }, 0);
    var avg = sum / visibleRows.length;
    var max = visibleRows.reduce(function(a, c){ return Math.max(a, c[col]); }, -Infinity);
    var min = visibleRows.reduce(function(a, c){ return Math.min(a, c[col]); }, Infinity);

### Read More

- getTotalRowCount method
- OrigSearchData col
- getShownRows method

### Since

product | version | desc
--- | --- | ---
core | 8.0.0.0 | 기능 추가
core | 8.0.0.4 | `noSubTotal` 인자 추가로 소계/누계 행을 제외한 데이터 행만 가져오는 기능 추가