# 行と列

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

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

- Requested language: `ja-JP`

- Content language: `ja-JP`

- Documentation version: `1.1.0`

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

---

## Facade API

完全な Facade API の型定義は [Facade API](https://docs.univer.ai/ja-JP/reference/facade.md) を参照してください。

### 行（Row）

#### 指定位置の直後に行を挿入

[`insertRowAfter(afterPosition)`](https://docs.univer.ai/ja-JP/reference/facade/worksheet.md#insertrowafter)：指定した行位置の直後に 1 行挿入します。

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

// 先頭行（位置 0）の直後に 1 行挿入
sheet.insertRowAfter(0)
```

#### 指定位置の直前に行を挿入

[`insertRowBefore(beforePosition)`](https://docs.univer.ai/ja-JP/reference/facade/worksheet.md#insertrowbefore)：指定した行位置の直前に 1 行挿入します。

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

// 先頭行（位置 0）の直前に 1 行挿入
sheet.insertRowBefore(0)
```

#### 指定位置から複数行を挿入

[`insertRows(rowIndex, numRows)`](https://docs.univer.ai/ja-JP/reference/facade/worksheet.md#insertrows)：指定開始位置から連続する空白行を 1 行以上挿入します。

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

// 先頭から 3 行分下方にシフト
sheet.insertRows(0, 3)
```

#### 指定行の直後に複数行を挿入

[`insertRowsAfter(afterPosition, howMany)`](https://docs.univer.ai/ja-JP/reference/facade/worksheet.md#insertrowsafter)：指定した行位置の直後に複数行を挿入します。

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

// 先頭行の直後に 5 行挿入
sheet.insertRowsAfter(0, 5)
```

#### 指定行の直前に複数行を挿入

[`insertRowsBefore(beforePosition, howMany)`](https://docs.univer.ai/ja-JP/reference/facade/worksheet.md#insertrowsbefore)：指定した行位置の直前に複数行を挿入します。

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

// 先頭行の直前に 5 行挿入
sheet.insertRowsBefore(0, 5)
```

#### 指定位置の行を削除

[`deleteRow(rowPosition)`](https://docs.univer.ai/ja-JP/reference/facade/worksheet.md#deleterow)：指定した位置の 1 行を削除します。

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

// 行は 0 から始まる - 先頭行を削除
sheet.deleteRow(0)
```

#### 指定位置から複数行を削除

[`deleteRows(rowPosition, howMany)`](https://docs.univer.ai/ja-JP/reference/facade/worksheet.md#deleterows)：指定した開始位置から複数行を削除します。

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

// 先頭 2 行を削除
sheet.deleteRows(0, 2)
```

#### 複数行（不連続）を削除

[`deleteRowsByPoints(rowPoints)`](https://docs.univer.ai/ja-JP/reference/facade/worksheet.md#deleterowsbypoints): 指定された行位置の配列に基づいて、複数の行（不連続）を削除します。

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

// 行は 0 から始まる - これにより、3 行目と 5～7 行目が削除されます
fWorksheet.deleteRowsByPoints([2, [4, 6]])
```

#### 行を新しい位置へ移動

[`moveRows(rowSpec, destinationIndex)`](https://docs.univer.ai/ja-JP/reference/facade/worksheet.md#moverows)：指定範囲に含まれるすべての行を `destinationIndex` の位置へ移動します。`rowSpec` は行全体を完全に指定している必要はなく、その範囲が跨る行すべてが対象となります。

```typescript
// 下記コードは行 1-2 (表示上 2-3 行目) を宛先インデックス 5 に移動
// 結果としてそれらは行 3-4 となる
const sheet = univerAPI.getActiveWorkbook().getActiveSheet()

// 移動対象として行 1 および行 2 を選択
const rowSpec = sheet.getRange('1:2')
sheet.moveRows(rowSpec, 5)
```

#### 範囲内の行を非表示

[`hideRow(row)`](https://docs.univer.ai/ja-JP/reference/facade/worksheet.md#hiderow)：指定範囲内の行を非表示にします。

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

// 先頭行を非表示
const range = sheet.getRange('1:1')
sheet.hideRow(range)
```

#### 連続する複数行を非表示

[`hideRows(rowIndex, numRows)`](https://docs.univer.ai/ja-JP/reference/facade/worksheet.md#hiderows)：指定インデックスから 0 起算で連続する複数行を非表示にします。

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

// 先頭 3 行を非表示
sheet.hideRows(0, 3)
```

#### 範囲内の行を再表示

[`unhideRow(row)`](https://docs.univer.ai/ja-JP/reference/facade/worksheet.md#unhiderow)：指定範囲の行を再表示します。

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

// 非表示だった先頭行を再表示
const range = sheet.getRange('1:1')
sheet.unhideRow(range)
```

#### 連続する複数行を再表示

[`showRows(rowIndex, numRows)`](https://docs.univer.ai/ja-JP/reference/facade/worksheet.md#showrows)：指定インデックスから 0 起算で連続する複数行を再表示します。

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

// 先頭 3 行を再表示
sheet.showRows(0, 3)
```

#### 行の高さを設定

[`setRowHeight(rowPosition, height)`](https://docs.univer.ai/ja-JP/reference/facade/worksheet.md#setrowheight)：指定行の高さ（ピクセル）を設定します。既定ではセル内容に応じて自動伸長します。固定したい場合は `setRowHeightsForced(startRow, numRows, height)` を使用してください。

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

// 先頭行の高さを 200px に設定
sheet.setRowHeight(0, 200)
```

#### 複数行の高さを設定

[`setRowHeights(startRow, numRows, height)`](https://docs.univer.ai/ja-JP/reference/facade/worksheet.md#setrowheights)：指定範囲の複数行の高さを設定します。自動伸長は維持されます。

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

// 先頭 3 行を 200px に設定
sheet.setRowHeights(0, 3, 200)
```

#### 複数行の高さを強制固定

[`setRowHeightsForced(startRow, numRows, height)`](https://docs.univer.ai/ja-JP/reference/facade/worksheet.md#setrowheightsforced): セル内容より小さくても指定高さに強制固定します。

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

// 先頭 3 行を 5px に強制固定
sheet.setRowHeightsForced(0, 3, 5)
```

#### 行の自動高さ調整

[`autoResizeRows(startRow, numRows)`](https://docs.univer.ai/ja-JP/reference/facade/worksheet.md#autoresizerows): テキスト内容に合わせて自動で高さを調整します。

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

// 先頭 3 行を内容に合わせて自動調整
sheet.autoResizeRows(0, 3)
```

#### 行のカスタムプロパティ設定

[`setRowCustom(custom)`](https://docs.univer.ai/ja-JP/reference/facade/worksheet.md#setrowcustom)：指定行に JSON 互換の任意データを格納する `custom` プロパティを設定します。
更新時は既存の `custom` を上書きするため、保持したい場合は取得後マージしてください。

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

// 1 行目と 3 行目にカスタム属性を設定
sheet.setRowCustom({
  0: { color: 'red' },
  2: { size: 16 },
})
```

### 列（Column）

#### 指定位置の直後に列を挿入

[`insertColumnAfter(afterPosition)`](https://docs.univer.ai/ja-JP/reference/facade/worksheet.md#insertcolumnafter)：指定した列位置の直後に 1 列挿入します。

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

// 先頭列（位置 0）の直後に 1 列挿入
sheet.insertColumnAfter(0)
```

#### 指定位置の直前に列を挿入

[`insertColumnBefore(beforePosition)`](https://docs.univer.ai/ja-JP/reference/facade/worksheet.md#insertcolumnbefore)：指定した列位置の直前に 1 列挿入します。

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

// 先頭列（位置 0）の直前に 1 列挿入
sheet.insertColumnBefore(0)
```

#### 指定位置から複数列を挿入

[`insertColumns(columnIndex, numColumns)`](https://docs.univer.ai/ja-JP/reference/facade/worksheet.md#insertcolumns)：指定開始位置から連続する空白列を挿入します。

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

// 先頭から 3 列分右へシフト
sheet.insertColumns(0, 3)
```

#### 指定列の直後に複数列を挿入

[`insertColumnsAfter(afterPosition, howMany)`](https://docs.univer.ai/ja-JP/reference/facade/worksheet.md#insertcolumnsafter)：指定した列位置の直後に複数列を挿入します。

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

// 先頭列の直後に 2 列挿入
sheet.insertColumnsAfter(0, 2)
```

#### 指定列の直前に複数列を挿入

[`insertColumnsBefore(beforePosition, howMany)`](https://docs.univer.ai/ja-JP/reference/facade/worksheet.md#insertcolumnsbefore)：指定した列位置の直前に複数列を挿入します。

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

// 先頭列の直前に 5 列挿入
sheet.insertColumnsBefore(0, 5)
```

#### 指定位置の列を削除

[`deleteColumn(columnPosition)`](https://docs.univer.ai/ja-JP/reference/facade/worksheet.md#deletecolumn)：指定位置の列を削除します。

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

// 列は 0 起算 - 先頭列を削除
sheet.deleteColumn(0)
```

#### 指定位置から複数列を削除

[`deleteColumns(columnPosition, howMany)`](https://docs.univer.ai/ja-JP/reference/facade/worksheet.md#deletecolumns)：指定開始位置から複数列を削除します。

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

// 先頭 2 列を削除
sheet.deleteColumns(0, 2)
```

#### 複数列（不連続）を削除

[`deleteColumnsByPoints(columnPoints)`](https://docs.univer.ai/ja-JP/reference/facade/worksheet.md#deletecolumnsbypoints): 指定された列位置の配列に基づいて、複数の列（不連続）を削除します。

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

// 列は 0 起算 - これにより、列 C と列 E〜G が削除されます
fWorksheet.deleteColumnsByPoints([2, [4, 6]])
```

#### 列を新しい位置へ移動

[`moveColumns(columnSpec, destinationIndex)`](https://docs.univer.ai/ja-JP/reference/facade/worksheet.md#movecolumns)：指定範囲が跨るすべての列を `destinationIndex` へ移動します。`columnSpec` が列全体を完全指定している必要はありません。

```typescript
// 下記コードは列 A-B を宛先インデックス 5 へ移動
// 結果としてそれらは列 C-D となる
const sheet = univerAPI.getActiveWorkbook().getActiveSheet()

// 移動対象として列 A と列 B を選択
const columnSpec = sheet.getRange('A:B')
sheet.moveColumns(columnSpec, 5)
```

#### 範囲内の列を非表示

[`hideColumn(column)`](https://docs.univer.ai/ja-JP/reference/facade/worksheet.md#hidecolumn)：指定範囲の列を非表示にします。

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

// 先頭列を非表示
const range = sheet.getRange('A:A')
sheet.hideColumn(range)
```

#### 連続する複数列を非表示

[`hideColumns(columnIndex, numColumns)`](https://docs.univer.ai/ja-JP/reference/facade/worksheet.md#hidecolumns)：指定インデックスから 0 起算で連続する複数列を非表示にします。

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

// 先頭 3 列を非表示
sheet.hideColumns(0, 3)
```

#### 範囲内の列を再表示

[`unhideColumn(column)`](https://docs.univer.ai/ja-JP/reference/facade/worksheet.md#unhidecolumn)：指定範囲の列を再表示します。

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

// 非表示だった先頭列を再表示
const range = sheet.getRange('A:A')
sheet.unhideColumn(range)
```

#### 連続する複数列を再表示

[`showColumns(columnIndex, numColumns)`](https://docs.univer.ai/ja-JP/reference/facade/worksheet.md#showcolumns)：指定インデックスから 0 起算で連続する複数列を再表示します。

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

// 先頭 3 列を再表示
sheet.showColumns(0, 3)
```

#### 列幅を設定

[`setColumnWidth(columnPosition, width)`](https://docs.univer.ai/ja-JP/reference/facade/worksheet.md#setcolumnwidth)：指定列の幅（ピクセル）を設定します。

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

// 先頭列の幅を 200px に設定
sheet.setColumnWidth(0, 200)
```

#### 複数列の幅を設定

[`setColumnWidths(startColumn, numColumns, width)`](https://docs.univer.ai/ja-JP/reference/facade/worksheet.md#setcolumnwidths)：指定範囲の複数列の幅（ピクセル）を設定します。

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

// 先頭 3 列の幅を 200px に設定
sheet.setColumnWidths(0, 3, 200)
```

#### 列幅を自動調整

[`autoResizeColumns(startColumn, numColumns)`](https://docs.univer.ai/ja-JP/reference/facade/worksheet.md#autoresizecolumns)：指定範囲列の内容に最適な幅へ自動調整します。

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

// 列 A〜C を内容に合わせて自動調整
sheet.autoResizeColumns(0, 3)
```

#### 列のカスタムプロパティ設定

[`setColumnCustom(custom)`](https://docs.univer.ai/ja-JP/reference/facade/worksheet.md#setcolumncustom)：指定列に JSON 互換データを格納する `custom` プロパティを設定します。
更新は既存 `custom` を上書きするため、保持が必要な場合は取得後マージしてください。

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

// 1 列目と 3 列目にカスタム属性を設定
sheet.setColumnCustom({
  0: { color: 'red' },
  2: { size: 16 },
})
```
