# Строки и столбцы

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

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

- Requested language: `ru-RU`

- Content language: `ru-RU`

- Documentation version: `1.2.0`

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

---

## Facade API

Полные определения типов Facade API доступны в [справочнике Facade API](https://docs.univer.ai/ru-RU/reference/facade.md).

### Строки

#### Вставка строки после заданной позиции

[`insertRowAfter(afterPosition)`](https://docs.univer.ai/ru-RU/reference/facade/worksheet.md#insertrowafter): вставляет строку после заданной позиции строки.

```typescript
const sheet = univerAPI.getActiveWorkbook().getActiveSheet()

// This inserts a row after the first row position
sheet.insertRowAfter(0)
```

#### Вставка строки перед заданной позицией

[`insertRowBefore(beforePosition)`](https://docs.univer.ai/ru-RU/reference/facade/worksheet.md#insertrowbefore): вставляет строку перед заданной позицией строки.

```typescript
const sheet = univerAPI.getActiveWorkbook().getActiveSheet()

// This inserts a row before the first row position
sheet.insertRowBefore(0)
```

#### Вставка нескольких строк в заданной позиции

[`insertRows(rowIndex, numRows)`](https://docs.univer.ai/ru-RU/reference/facade/worksheet.md#insertrows): вставляет на листе одну или несколько последовательных пустых строк, начиная с заданной позиции.

```typescript
const sheet = univerAPI.getActiveWorkbook().getActiveSheet()

// Shifts all rows down by three
sheet.insertRows(0, 3)
```

#### Вставка нескольких строк после заданной позиции

[`insertRowsAfter(afterPosition, howMany)`](https://docs.univer.ai/ru-RU/reference/facade/worksheet.md#insertrowsafter): вставляет указанное количество строк после заданной позиции строки.

```typescript
const sheet = univerAPI.getActiveWorkbook().getActiveSheet()

// This inserts five rows after the first row
sheet.insertRowsAfter(0, 5)
```

#### Вставка нескольких строк перед заданной позицией

[`insertRowsBefore(beforePosition, howMany)`](https://docs.univer.ai/ru-RU/reference/facade/worksheet.md#insertrowsbefore): вставляет указанное количество строк перед заданной позицией строки.

```typescript
const sheet = univerAPI.getActiveWorkbook().getActiveSheet()

// This inserts five rows before the first row
sheet.insertRowsBefore(0, 5)
```

#### Удаление строки в заданной позиции

[`deleteRow(rowPosition)`](https://docs.univer.ai/ru-RU/reference/facade/worksheet.md#deleterow): удаляет строку в заданной позиции.

```typescript
const sheet = univerAPI.getActiveWorkbook().getActiveSheet()

// Rows start at "0" - this deletes the first row
sheet.deleteRow(0)
```

#### Удаление нескольких строк, начиная с заданной позиции

[`deleteRows(rowPosition, howMany)`](https://docs.univer.ai/ru-RU/reference/facade/worksheet.md#deleterows): удаляет указанное количество строк, начиная с заданной позиции.

```typescript
const sheet = univerAPI.getActiveWorkbook().getActiveSheet()

// Rows start at "0" - this deletes the first two rows
sheet.deleteRows(0, 2)
```

#### Удаление нескольких строк в заданных позициях

[`deleteRowsByPoints(rowPoints)`](https://docs.univer.ai/ru-RU/reference/facade/worksheet.md#deleterowsbypoints): удаляет несколько строк, не обязательно последовательных, заданных массивом позиций.

```typescript
const sheet = univerAPI.getActiveWorkbook().getActiveSheet()

// Rows start at "0" - this deletes the 3rd row and rows 5 to 7
fWorksheet.deleteRowsByPoints([2, [4, 6]])
```

#### Перемещение строк в новую позицию

[`moveRows(rowSpec, destinationIndex)`](https://docs.univer.ai/ru-RU/reference/facade/worksheet.md#moverows): перемещает строки, выбранные заданным диапазоном, в позицию с индексом `destinationIndex`. Диапазон `rowSpec` не обязан в точности представлять целую строку или группу строк: метод выбирает все строки, которые охватывает диапазон.

```typescript
// The code below moves rows 1-2 to destination index 5
// This results in those rows becoming rows 3-4
const sheet = univerAPI.getActiveWorkbook().getActiveSheet()

// Selects row 1 and row 2 to be moved
const rowSpec = sheet.getRange('1:2')
sheet.moveRows(rowSpec, 5)
```

#### Скрытие строк в заданном диапазоне

[`hideRow(row)`](https://docs.univer.ai/ru-RU/reference/facade/worksheet.md#hiderow): скрывает строки в заданном диапазоне.

```typescript
const sheet = univerAPI.getActiveWorkbook().getActiveSheet()

// This hides the first row
const range = sheet.getRange('1:1')
sheet.hideRow(range)
```

#### Скрытие нескольких последовательных строк

[`hideRows(rowIndex, numRows)`](https://docs.univer.ai/ru-RU/reference/facade/worksheet.md#hiderows): скрывает одну или несколько последовательных строк, начиная с заданного индекса. В этом методе используется индексация с нуля.

```typescript
const sheet = univerAPI.getActiveWorkbook().getActiveSheet()

// Hides the first three rows
sheet.hideRows(0, 3)
```

#### Отображение строки в заданном диапазоне

[`unhideRow(row)`](https://docs.univer.ai/ru-RU/reference/facade/worksheet.md#unhiderow): отображает скрытую строку в заданном диапазоне.

```typescript
const sheet = univerAPI.getActiveWorkbook().getActiveSheet()

// This unhides the first row if it was previously hidden
const range = sheet.getRange('1:1')
sheet.unhideRow(range)
```

#### Отображение нескольких последовательных строк

[`showRows(rowIndex, numRows)`](https://docs.univer.ai/ru-RU/reference/facade/worksheet.md#showrows): отображает одну или несколько последовательных скрытых строк, начиная с заданного индекса. В этом методе используется индексация с нуля.

```typescript
const sheet = univerAPI.getActiveWorkbook().getActiveSheet()

// Unhides the first three rows
sheet.showRows(0, 3)
```

#### Установка высоты строки

[`setRowHeight(rowPosition, height)`](https://docs.univer.ai/ru-RU/reference/facade/worksheet.md#setrowheight): задаёт высоту строки в пикселях. По умолчанию высота строк увеличивается под содержимое ячеек. Чтобы принудительно задать определённую высоту, используйте `setRowHeightsForced(startRow, numRows, height)`.

```typescript
const sheet = univerAPI.getActiveWorkbook().getActiveSheet()

// Sets the first row to a height of 200 pixels
sheet.setRowHeight(0, 200)
```

#### Установка высоты нескольких строк

[`setRowHeights(startRow, numRows, height)`](https://docs.univer.ai/ru-RU/reference/facade/worksheet.md#setrowheights): задаёт высоту указанных строк в пикселях. По умолчанию высота строк увеличивается под содержимое ячеек. Чтобы принудительно задать определённую высоту, используйте `setRowHeightsForced(startRow, numRows, height)`.

```typescript
const sheet = univerAPI.getActiveWorkbook().getActiveSheet()

// Sets the first three rows to a height of 200 pixels
sheet.setRowHeights(0, 3, 200)
```

#### Принудительная установка высоты нескольких строк

[`setRowHeightsForced(startRow, numRows, height)`](https://docs.univer.ai/ru-RU/reference/facade/worksheet.md#setrowheightsforced): задаёт высоту указанных строк в пикселях. При использовании `setRowHeightsForced` заданная высота применяется принудительно, даже если содержимое ячейки выше строки.

```typescript
const sheet = univerAPI.getActiveWorkbook().getActiveSheet()

// Sets the first three rows to a height of 5 pixels
sheet.setRowHeightsForced(0, 3, 5)
```

#### Автоматическая настройка высоты строк

[`autoResizeRows(startRow, numRows)`](https://docs.univer.ai/ru-RU/reference/facade/worksheet.md#autoresizerows): автоматически подбирает высоту указанных строк под их текстовое содержимое.

```typescript
const sheet = univerAPI.getActiveWorkbook().getActiveSheet()

// Set the first 3 rows to a height that fits their text.
sheet.autoResizeRows(0, 3)
```

#### Установка пользовательских свойств строк

[`setRowCustom(custom)`](https://docs.univer.ai/ru-RU/reference/facade/worksheet.md#setrowcustom): задаёт пользовательские свойства строк. В строке сохраняется объект `custom`, в который можно поместить любые данные в формате JSON для хранения дополнительной информации.
При обновлении данных `custom` исходные данные `custom` перезаписываются. Если при обновлении необходимо сохранить исходные данные `custom`, заранее получите данные `custom`, объедините их с новыми, а затем выполните обновление.

```typescript
const sheet = univerAPI.getActiveWorkbook().getActiveSheet()

// Set custom properties for the first and third rows
sheet.setRowCustom({
  0: { color: 'red' },
  2: { size: 16 },
})
```

### Столбцы

#### Вставка столбца после заданной позиции

[`insertColumnAfter(afterPosition)`](https://docs.univer.ai/ru-RU/reference/facade/worksheet.md#insertcolumnafter): вставляет столбец после заданной позиции столбца.

```typescript
const sheet = univerAPI.getActiveWorkbook().getActiveSheet()

// This inserts a column after the first column position
sheet.insertColumnAfter(0)
```

#### Вставка столбца перед заданной позицией

[`insertColumnBefore(beforePosition)`](https://docs.univer.ai/ru-RU/reference/facade/worksheet.md#insertcolumnbefore): вставляет столбец перед заданной позицией столбца.

```typescript
const sheet = univerAPI.getActiveWorkbook().getActiveSheet()

// This inserts a column in the first column position
sheet.insertColumnBefore(0)
```

#### Вставка нескольких столбцов в заданной позиции

[`insertColumns(columnIndex, numColumns)`](https://docs.univer.ai/ru-RU/reference/facade/worksheet.md#insertcolumns): вставляет на листе один или несколько последовательных пустых столбцов, начиная с заданной позиции.

```typescript
const sheet = univerAPI.getActiveWorkbook().getActiveSheet()

// Shifts all columns by three
sheet.insertColumns(0, 3)
```

#### Вставка нескольких столбцов после заданной позиции

[`insertColumnsAfter(afterPosition, howMany)`](https://docs.univer.ai/ru-RU/reference/facade/worksheet.md#insertcolumnsafter): вставляет указанное количество столбцов после заданной позиции столбца.

```typescript
const sheet = univerAPI.getActiveWorkbook().getActiveSheet()

// Inserts two columns after the first column
sheet.insertColumnsAfter(0, 2)
```

#### Вставка нескольких столбцов перед заданной позицией

[`insertColumnsBefore(beforePosition, howMany)`](https://docs.univer.ai/ru-RU/reference/facade/worksheet.md#insertcolumnsbefore): вставляет указанное количество столбцов перед заданной позицией столбца.

```typescript
const sheet = univerAPI.getActiveWorkbook().getActiveSheet()

// This inserts five columns before the first column
sheet.insertColumnsBefore(0, 5)
```

#### Удаление столбца в заданной позиции

[`deleteColumn(columnPosition)`](https://docs.univer.ai/ru-RU/reference/facade/worksheet.md#deletecolumn): удаляет столбец в заданной позиции.

```typescript
const sheet = univerAPI.getActiveWorkbook().getActiveSheet()

// Columns start at "0" - this deletes the first column
sheet.deleteColumn(0)
```

#### Удаление нескольких столбцов, начиная с заданной позиции

[`deleteColumns(columnPosition, howMany)`](https://docs.univer.ai/ru-RU/reference/facade/worksheet.md#deletecolumns): удаляет указанное количество столбцов, начиная с заданной позиции.

```typescript
const sheet = univerAPI.getActiveWorkbook().getActiveSheet()

// Columns start at "0" - this deletes the first two columns
sheet.deleteColumns(0, 2)
```

#### Удаление нескольких столбцов в заданных позициях

[`deleteColumnsByPoints(columnPoints)`](https://docs.univer.ai/ru-RU/reference/facade/worksheet.md#deletecolumnsbypoints): удаляет несколько столбцов, не обязательно последовательных, заданных массивом позиций.

```typescript
const sheet = univerAPI.getActiveWorkbook().getActiveSheet()

// Columns start at "0" - this deletes the Column C and Columns E-G
fWorksheet.deleteColumnsByPoints([2, [4, 6]])
```

#### Перемещение столбцов в новую позицию

[`moveColumns(columnSpec, destinationIndex)`](https://docs.univer.ai/ru-RU/reference/facade/worksheet.md#movecolumns): перемещает столбцы, выбранные заданным диапазоном, в позицию с индексом `destinationIndex`. Диапазон `columnSpec` не обязан в точности представлять целый столбец или группу столбцов: метод выбирает все столбцы, которые охватывает диапазон.

```typescript
// The code below moves rows A-B to destination index 5.
// This results in those columns becoming columns C-D.
const sheet = univerAPI.getActiveWorkbook().getActiveSheet()

// Selects column A and column B to be moved.
const columnSpec = sheet.getRange('A:B')
sheet.moveColumns(columnSpec, 5)
```

#### Скрытие столбцов в заданном диапазоне

[`hideColumn(column)`](https://docs.univer.ai/ru-RU/reference/facade/worksheet.md#hidecolumn): скрывает столбец или столбцы в заданном диапазоне.

```typescript
const sheet = univerAPI.getActiveWorkbook().getActiveSheet()

// This hides the first column
const range = sheet.getRange('A:A')
sheet.hideColumn(range)
```

#### Скрытие нескольких последовательных столбцов

[`hideColumns(columnIndex, numColumns)`](https://docs.univer.ai/ru-RU/reference/facade/worksheet.md#hidecolumns): скрывает один или несколько последовательных столбцов, начиная с заданного индекса. В этом методе используется индексация с нуля.

```typescript
const sheet = univerAPI.getActiveWorkbook().getActiveSheet()

// Hides the first three columns
sheet.hideColumns(0, 3)
```

#### Отображение столбца в заданном диапазоне

[`unhideColumn(column)`](https://docs.univer.ai/ru-RU/reference/facade/worksheet.md#unhidecolumn): отображает скрытый столбец в заданном диапазоне.

```typescript
const sheet = univerAPI.getActiveWorkbook().getActiveSheet()

// This unhides the first column if it was previously hidden
const range = sheet.getRange('A:A')
sheet.unhideColumn(range)
```

#### Отображение нескольких последовательных столбцов

[`showColumns(columnIndex, numColumns)`](https://docs.univer.ai/ru-RU/reference/facade/worksheet.md#showcolumns): отображает один или несколько последовательных скрытых столбцов, начиная с заданного индекса. В этом методе используется индексация с нуля.

```typescript
const sheet = univerAPI.getActiveWorkbook().getActiveSheet()

// Unhides the first three columns
sheet.showColumns(0, 3)
```

#### Установка ширины столбца

[`setColumnWidth(columnPosition, width)`](https://docs.univer.ai/ru-RU/reference/facade/worksheet.md#setcolumnwidth): задаёт ширину столбца в пикселях.

```typescript
const sheet = univerAPI.getActiveWorkbook().getActiveSheet()

// Sets the first column to a width of 200 pixels
sheet.setColumnWidth(0, 200)
```

#### Установка ширины нескольких столбцов

[`setColumnWidths(startColumn, numColumns, width)`](https://docs.univer.ai/ru-RU/reference/facade/worksheet.md#setcolumnwidths): задаёт ширину указанных столбцов в пикселях.

```typescript
const sheet = univerAPI.getActiveWorkbook().getActiveSheet()

// Sets the first three columns to a width of 200 pixels
sheet.setColumnWidths(0, 3, 200)
```

#### Автоматическая настройка ширины столбцов

[`autoResizeColumns(startColumn, numColumns)`](https://docs.univer.ai/ru-RU/reference/facade/worksheet.md#autoresizecolumns): автоматически подбирает ширину указанных столбцов под их текстовое содержимое.

```typescript
const sheet = univerAPI.getActiveWorkbook().getActiveSheet()

// Set the A:C columns to a width that fits their text.
sheet.autoResizeColumns(0, 3)
```

#### Установка пользовательских свойств столбцов

[`setColumnCustom(custom)`](https://docs.univer.ai/ru-RU/reference/facade/worksheet.md#setcolumncustom): задаёт пользовательские свойства столбцов. В столбце сохраняется объект `custom`, в который можно поместить любые данные в формате JSON для хранения дополнительной информации.
При обновлении данных `custom` исходные данные `custom` перезаписываются. Если при обновлении необходимо сохранить исходные данные `custom`, заранее получите данные `custom`, объедините их с новыми, а затем выполните обновление.

```typescript
const sheet = univerAPI.getActiveWorkbook().getActiveSheet()

// Set custom properties for the first and third columns
sheet.setColumnCustom({
  0: { color: 'red' },
  2: { size: 16 },
})
```
