# 기본 스타일

- Human documentation: [https://docs.univer.ai/ko-KR/guides/sheets/features/core/default-style](https://docs.univer.ai/ko-KR/guides/sheets/features/core/default-style)

- Agent Markdown: [https://docs.univer.ai/ko-KR/guides/sheets/features/core/default-style.md](https://docs.univer.ai/ko-KR/guides/sheets/features/core/default-style.md)

- Requested language: `ko-KR`

- Content language: `ko-KR`

- Documentation version: `1.0.4`

- Source: [sheets/features/core/default-style.ko-KR.mdx](https://github.com/dream-num/documentation/blob/dev/content/guides/sheets/features/core/default-style.ko-KR.mdx)

---

두 가지 수준의 기본 스타일을 제공합니다.

1. 워크시트의 기본 스타일
2. 열 또는 행의 기본 스타일

두 스타일 모두 [`IWorksheetData`](https://docs.univer.ai/ko-KR/reference/types/worksheet-data.md) 인터페이스 또는 Facade API를 통해 설정할 수 있습니다.



## 구성

기본적으로 열 스타일이 행 스타일보다 우선합니다. 등록할 때 `isRowStylePrecedeColumnStyle`을 설정하여 이 동작을 변경할 수 있습니다.

사용 중인 모드를 선택하고 기존 초기화 설정에 아래 옵션을 병합하세요. 다른 플러그인, 언어, 테마 및 컨테이너 설정은 유지하고 같은 플러그인을 중복 등록하지 마세요.

#### 플러그인 모드

```typescript
import { UniverSheetsPlugin } from '@univerjs/sheets'

univer.registerPlugin(UniverSheetsPlugin, {
  isRowStylePrecedeColumnStyle: true,
})
```

#### 프리셋 모드

```typescript
import { UniverSheetsCorePreset } from '@univerjs/preset-sheets-core'
import { createUniver } from '@univerjs/presets'

const { univerAPI } = createUniver({
  presets: [
    UniverSheetsCorePreset({
      sheets: {
        isRowStylePrecedeColumnStyle: true,
      },
    }),
  ],
})
```

## 기본 스타일 설정

워크시트의 기본 스타일을 설정하는 방법은 두 가지입니다.

1. [`IWorksheetData`](https://docs.univer.ai/ko-KR/reference/types/worksheet-data.md) 인터페이스를 통해 설정

```typescript
interface IWorksheetData {
  // other
  /**
   * @property {Nullable<IStyleData>} [defaultStyle] - Default style data of Worksheet.
   */
  defaultStyle?: Nullable<IStyleData>
}

interface IRowData {
  // other
  /**
   * style data
   */
  s?: Nullable<IStyleData>
}

interface IColumnData {
  // other
  /**
   * style data
   */
  s?: Nullable<IStyleData>
}
```

2. Facade API를 통해 설정

```typescript
const fworkbook = univerAPI.getActiveWorkbook()
const fworksheet = fworkbook.getActiveSheet()
const defaultStyle = {
  bg: {
    rgb: 'red',
  },
}
const defaultColumnStyle = {
  bg: {
    rgb: 'blue',
  },
}
const defaultRowStyle = {
  bg: {
    rgb: 'green',
  },
}

// set default style
fworksheet.setDefaultStyle(defaultStyle)
// set column D default style
fworksheet.setColumnDefaultStyle(3, defaultColumnStyle)
// reset column D the default style
fworksheet.setColumnDefaultStyle(3, undefined)

// set row default style
fworksheet.setRowDefaultStyle(1, defaultRowStyle)
```

## 셀에 맞게 텍스트 축소

텍스트 너비가 셀을 초과하면 `FRange`로 글꼴 크기를 줄일 수 있습니다. 이 설정은 범위의 모든 셀에 적용되며, `getShrinkToFit()`은 왼쪽 위 셀의 상태를 반환합니다.

```ts
const range = univerAPI.getActiveWorkbook().getActiveSheet().getRange('A1:C3')

range.setShrinkToFit(true)
const enabled = range.getShrinkToFit()
```

셀에 맞게 축소와 텍스트 줄 바꿈은 함께 사용할 수 없습니다. 줄 바꿈을 켜면 축소가 해제되고, 축소를 켜면 해당 셀의 기존 줄 바꿈 설정이 해제됩니다.
