# OBJECT

## Content

OBJECT 함수는 객체를 정의하고 속성(props)과 값을 지정하는 데 사용됩니다. OBJECT 함수의 결과는 이러한 속성과 값으로 구성된 객체가 됩니다.
OBJECT 함수는 [RANGEBLOCK](/spreadjs/docs/features/sparkmain/rangeblock-sparkline) 스파크라인을 생성하는 데 사용할 수 있습니다.

## 구문

`OBJECT(property1, expression1, property2, expression2, ...)`
`OBJECT(properties_range, expressions_range)`
`OBJECT(property1, expressionArray1, property2, expressionArray2, ...)`

## 인수

`OBJECT(property1, expression1, property2, expression2, ...)` 함수는 다음 네 가지 인수를 가집니다:

| **인수** | **설명** |
| --- | --- |
| property1 | 현재 객체의 첫 번째 속성을 나타냅니다. 문자열 또는 셀 참조일 수 있습니다. |
| *expression1* | 현재 객체의 첫 번째 속성 값을 나타냅니다. 모든 유형의 값 또는 셀 참조일 수 있습니다. |
| property2 | 현재 객체의 두 번째 속성을 나타냅니다. 문자열 또는 셀 참조일 수 있습니다. |
| expression2 | 현재 객체의 두 번째 속성 값을 나타냅니다. 모든 유형의 값 또는 셀 참조일 수 있습니다. |

`OBJECT(properties_range, expressions_range)` 함수는 다음 네 가지 인수를 가집니다:

| **인수** | **설명** |
| --- | --- |
| *properties\_range1* | 현재 객체의 첫 번째 속성을 나타냅니다. 범위 참조여야 합니다. |
| *expressions\_range1* | 현재 객체의 첫 번째 속성 값을 나타냅니다. 범위 참조여야 하며, 이 범위 길이는 속성 범위의 길이와 같아야 합니다. |
| properties\_range2 | 현재 객체의 두 번째 속성을 나타냅니다. 범위 참조여야 하며, 이 범위 길이는 첫 번째 속성 범위의 길이와 같아야 합니다. |
| expressions\_range2 | 현재 객체의 두 번째 속성 값을 나타냅니다. 범위 참조여야 하며, 이 범위 길이는 첫 번째 속성 범위의 길이와 같아야 합니다. |

`OBJECT(property1, expressionArray1, property2, expressionArray2, ...)` 함수는 다음 네 가지 인수를 가집니다:

| **인수** | **설명** |
| --- | --- |
| *property1* | 현재 객체의 첫 번째 속성을 나타냅니다. 문자열 또는 셀 참조일 수 있습니다. |
| *expressionArray1* | 현재 객체의 첫 번째 속성 값을 나타냅니다. 참조 배열이어야 합니다. |
| property2 | 현재 객체의 두 번째 속성을 나타냅니다. 문자열 또는 셀 참조일 수 있습니다. |
| expressionArray2 | 현재 객체의 두 번째 속성 값을 나타냅니다. 참조 배열이어야 하며, 첫 번째 속성 값의 길이와 같아야 합니다. |

## 참고

인수가 키-값 쌍 순서대로 짝지어져 있지 않으면 OBJECT 함수는 CalcError를 반환합니다.

## 데이터 유형

`OBJECT(property1, expression1, property2, expression2, ...)` 및 `OBJECT(properties_range, expressions_range)`는 객체 값 데이터 유형을 반환하며, `OBJECT(property1, expressionArray1, property2, expressionArray2, ...)`는 객체 배열 데이터 유형을 반환합니다.

## 예제

```JavaScript
$(document).ready(function () {
    // Spread 초기화
    var spread = new GC.Spread.Sheets.Workbook(document.getElementById('ss'), { sheetCount: 1 });
    // 현재 시트 가져오기
    var sheet = spread.getActiveSheet();
    // 데이터 소스는 배열
    let dataSource = [
        {
            "NAME": "James Smith",
            "POSITION": "AVP",
            "OFFICE": "Fox Studios",
            "EXTN": 71,
            "START_DATE": '3/08/2008',
            "JOINING_YEAR": 2008
        }
    ];
    let colInfos = [
        { name: "NAME", displayName: "NAME", size: "2*" },
        { name: "POSITION", displayName: "POSITION", size: "*" },
        { name: "OFFICE", size: "*" },
        { name: "EXTN", size: "*" },
        { name: "START_DATE", size: 100 },
        { name: "JOINING_YEAR", size: 100 }
    ];
    // 스타일 생성
    var style = new GC.Spread.Sheets.Style();
    style.cellButtons = [
        {
            imageType: GC.Spread.Sheets.ButtonImageType.dropdown,
            command: "openMultiColumn",
            useButtonStyle: true,
        }
    ];
    style.dropDowns = [
        {
            type: GC.Spread.Sheets.DropDownType.multiColumn,
            option: {
                width: 600,
                height: 150,
                dataSource: dataSource,
                bindingInfos: colInfos
            }
        }
    ];
    // 스타일 포매터 설정
    style.formatter = '=PROPERTY(@, "OFFICE")';
    // 스타일 설정
    sheet.setStyle(0, 1, style);
    // 텍스트 설정
    sheet.setText(0, 0, "DataSource는 배열이며, 'OFFICE' 속성 값으로 파싱된 데이터를 반환합니다.");
    // 줄 바꿈 설정
    sheet.getCell(0, 0).wordWrap(true);
    sheet.getCell(0, 1).wordWrap(true);
    // 열 너비 설정
    sheet.setColumnWidth(0, 200);
    sheet.setColumnWidth(1, 400);
    // 행 높이 설정
    sheet.setRowHeight(0, 70);
});
```