# 默认样式

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

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

- Requested language: `zh-CN`

- Content language: `zh-CN`

- Documentation version: `1.0.0-rc.0`

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

---

Univer 提供了两级默认样式：

1. 工作表的默认样式
2. 列或行的默认样式

这两者都可以通过 [`IWorksheetData`](https://reference.univer.ai/zh-CN/interfaces/IWorksheetData) 接口或 Facade API 设置。

## 配置

默认情况下，列样式优先于行样式。你可以在注册时通过设置 `isRowStylePrecedeColumnStyle` 来更改此行为。

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

## 设置默认样式

工作表的默认样式可以通过两种方式设置：

1. 通过 [`IWorksheetData`](https://reference.univer.ai/zh-CN/interfaces/IWorksheetData) 接口

```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',
  },
}

// 设置默认样式
fworksheet.setDefaultStyle(defaultStyle)
// 设置列 D 的默认样式
fworksheet.setColumnDefaultStyle(3, defaultColumnStyle)
// 重置列 D 的默认样式
fworksheet.setColumnDefaultStyle(3, undefined)

// 设置行默认样式
fworksheet.setRowDefaultStyle(1, defaultRowStyle)
```

## 缩小字体填充

当文本宽度超过单元格时，可通过 `FRange` 缩小字体。该设置会应用到范围内的所有单元格；`getShrinkToFit()` 读取左上角单元格的状态。

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

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