# Стили по умолчанию

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

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

- Requested language: `ru-RU`

- Content language: `ru-RU`

- Documentation version: `1.2.0`

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

---

Предусмотрено два уровня стилей по умолчанию:

1. Стиль листа по умолчанию
2. Стиль столбца или строки по умолчанию

Оба уровня можно настроить через интерфейс [`IWorksheetData`](https://docs.univer.ai/ru-RU/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/ru-RU/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()
```

Уменьшение текста и перенос по строкам несовместимы. Включение переноса отключает уменьшение; включение уменьшения снимает перенос у ячеек, где он был задан.

## Межстрочный интервал в ячейках

`textLineGap` добавляет интервал в пикселях между строками текста ячейки, включая форматированный текст и редактор ячейки. Задаётся при инициализации и действует для всех книг экземпляра Univer. По умолчанию `0`; требуется конечное неотрицательное число.



#### Режим плагинов

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

univer.registerPlugin(UniverSheetsPlugin, { textLineGap: 6 })
```

#### Режим пресетов

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

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

Увеличение интервала не меняет существующую высоту строк. При необходимости пересчитайте автоматическую высоту; фиксированная высота может обрезать текст. Это настройка экземпляра, а не стиль абзаца отдельной ячейки.
