# 기본 서식

## Content

표준 숫자, 날짜 및 시간, 사용자 지정 형식 등 다양한 서식 옵션을 사용하여 셀 값을 서식 지정할 수 있습니다.
[setFormatter](/spreadjs/api/classes/GC.Spread.Sheets.Worksheet#setFormatter) 메서드를 사용하여 셀에 서식 문자열을 설정하고, [getFormatter](/spreadjs/api/classes/GC.Spread.Sheets.Worksheet#getFormatter) 메서드를 사용하여 셀 서식을 가져올 수 있습니다.
또한 [FormatterBase](/spreadjs/api/classes/GC.Spread.Formatter.FormatterBase) 클래스를 사용하여 사용자 지정 서식을 만들 수 있으며, 이 클래스는 콤보, 조건부, 전경색 서식을 지원합니다. 단, `"("`, `")"`, `"*"` 표현식은 지원되지 않습니다.

## 표준 값 서식 지정

[formatter](/spreadjs/api/classes/GC.Spread.Sheets.CellRange#formatter) 메서드를 사용하여 셀, 열 또는 행의 서식을 가져오고 설정할 수 있습니다.
다음은 다양한 서식 스타일로 셀 값을 서식 지정하는 예시입니다.

```javascript
var dvalue= 12345.6789;
activeSheet.setValue(0,0,dvalue);
activeSheet.getCell(0, 1).formatter("M");
activeSheet.setValue(0, 1, new Date(2011, 2, 9));
activeSheet.getCell(0, 2).formatter("m");
activeSheet.setValue(0, 2, new Date(2012, 10, 15));
activeSheet.getCell(0, 3).formatter("General");
activeSheet.setValue(0, 3, new Date(2012, 10, 15));
activeSheet.getCell(0, 4).formatter("#.#%");
activeSheet.setValue(0, 4, 1);
activeSheet.getCell(1, 0).formatter('[<0](0.0);[>0]0.0;"zero";@');
activeSheet.setValue(1, 0, 3);
```

## 분수 서식 지정

SpreadJS는 `"# ?/?"`, `"# ??/??"`, `"# ?/4"`, `"#,## ?/?"`와 같은 일반적인 분수 서식을 지원합니다. 음수 값을 분수로 변환할 수도 있습니다.
다음은 셀 값을 분수로 지정하는 예시입니다.

```javascript
var dvalue= 123.89;
activeSheet.setValue(0,0,dvalue);
activeSheet.getCell(0, 0).formatter("# ??/??");
```

## DB 숫자 서식 지정

SpreadJS는 지역 ID `"$-411"`과 `DBNumber`를 지원합니다.
다음 코드 예제는 로캘 ID `"$-411"`을 사용하여 셀 값을 서식 지정하는 방법을 보여줍니다.

```javascript
var dvalue= 123.89;
activeSheet.setValue(0,0,dvalue);
activeSheet.getCell(0,0).formatter("[$-411]dddd");
```

다음 코드 예제는 `DBNumber`를 사용하여 셀 값을 서식 지정하는 방법을 보여줍니다.

```javascript
var dvalue= 123.89;
activeSheet.setValue(0,0,dvalue);
activeSheet.getCell(0,0).formatter("[DBNum2][$-411]General");
```

## 문화권 서식 지정

문화권을 `"ja-jp"` 또는 `"en-us"`로 설정할 수 있으며, 위젯 전체 또는 개별 셀에 대해 지정할 수 있습니다.
다음 코드 예제는 위젯의 문화권(culture)을 설정하는 방법을 보여줍니다.

```javascript
//위젯 설정
GC.Spread.Common.CultureManager.culture("ja-jp");
```

숫자는 현재 설정된 문화권에 따라 서식이 지정됩니다. 기본 문화권은 영어이며, 셀의 문화권 설정은 위젯 전체의 문화권 설정에는 영향을 주지 않습니다.
다음 코드 예제는 셀의 문화권(culture)을 설정하는 방법을 보여줍니다.

```javascript
//셀 설정 
//Input date string "2014/01/07" in cell[0,0] and cell[0,1]
activeSheet.getCell(0,0).formatter(new GC.Spread.Formatter.GeneralFormatter("yyyy/MM/dd dddd", "ja-jp"));
activeSheet.getCell(0,1).formatter(new GC.Spread.Formatter.GeneralFormatter("yyyy/MM/dd dddd", "en-us"));
```

## 색상 서식 지정

색상 서식은 `foreColor`(전경색)에 영향을 주며, 색상 문자열 이름뿐 아니라 색상 인덱스(1부터 56까지)를 지원합니다.
![](https://gcdocumentsitekrblob.blob.core.windows.net/document-site-files/images/8d606653-16a0-474d-b9dc-e2b4d01c2446/images/format-colorindex.png)

다음 코드 예제는 값 범위에 따라 셀의 색상을 변경하기 위해 색상 포맷을 인덱스로 설정하는 방법을 보여줍니다.

```javascript
activeSheet.getRange(2,2,1,6).formatter("[color44][<300]0.0;[color3][>400]0.0;[color45]0.0")
activeSheet.getCell(2,2).value(100);
activeSheet.getCell(2,3).value(200);
activeSheet.getCell(2,4).value(300);
activeSheet.getCell(2,5).value(400);
activeSheet.getCell(2,6).value(500);
activeSheet.getCell(2,7).value(600);
```

>type=warning
> **참고**: 색상 인덱스를 사용하는 수식은 Excel로 내보낼 때 색상 효과가 적용되지 않습니다.