凍結

IWorksheetData.freeze 可以配置工作表的凍結狀態。它的介面定義如下:

TypeScript
interface IFreeze {  /**   * 凍結列的數量   */  xSplit: number  /**   * 凍結行的數量   */  ySplit: number  /**   * 可滾動的起始行(檢視主區域的起始行)   */  startRow: number  /**   * 可滾動的起始列(檢視主區域的起始列)   */  startColumn: number}

例如,我想凍結 B 列和第 2 行,可以這樣配置:

JSON
{  "xSplit": 1, // 凍結 1 列,即 B 列  "ySplit": 1, // 凍結 1 行,即第 2 行  "startRow": 2, // 可滾動的起始行是第 3 行  "startColumn": 2 // 可滾動的起始列是第 C 列}

凍結窗格示意

向下、向右捲動,觀察哪些儲存格留在原位。

ABCDEFGH
1A1B1C1D1E1F1G1H1
2A2B2C2D2E2F2G2H2
3A3B3C3D3E3F3G3H3
4A4B4C4D4E4F4G4H4
5A5B5C5D5E5F5G5H5
6A6B6C6D6E6F6G6H6
7A7B7C7D7E7F7G7H7
8A8B8C8D8E8F8G8H8
9A9B9C9D9E9F9G9H9
10A10B10C10D10E10F10G10H10
11A11B11C11D11E11F11G11H11
12A12B12C12D12E12F12G12H12
13A13B13C13D13E13F13G13H13
14A14B14C14D14E14F14G14H14
15A15B15C15D15E15F15G15H15
16A16B16C16D16E16F16G16H16
17A17B17C17D17E17F17G17H17
18A18B18C18D18E18F18G18H18
{
  "startRow": 1,
  "startColumn": 1,
  "ySplit": 1,
  "xSplit": 1
}

split 表示凍結數量,start 表示可捲動區域的起始索引(從 0 開始);更早的列欄不在目前視圖中。

Facade API

FWorksheet 類提供了幾種方法來管理工作表中行和列的凍結狀態。這些方法允許你設定、獲取和取消凍結窗格。

設定凍結

TypeScript
const worksheet = univerAPI.getActiveWorkbook().getActiveSheet()worksheet.setFreeze({  xSplit: 1, // 凍結 1 列,即 B 列  ySplit: 1, // 凍結 1 行,即第 2 行  startRow: 2, // 可滾動的起始行是第 3 行  startColumn: 2, // 可滾動的起始列是第 C 列})console.log('當前凍結狀態:', worksheet.getFreeze())

設定凍結列的數量

TypeScript
const worksheet = univerAPI.getActiveWorkbook().getActiveSheet()// 設定 A-B 列凍結worksheet.setFrozenColumns(2)

設定凍結行的數量

TypeScript
const worksheet = univerAPI.getActiveWorkbook().getActiveSheet()// 設定前 3 行凍結worksheet.setFrozenRows(3)

獲取凍結狀態

TypeScript
const worksheet = univerAPI.getActiveWorkbook().getActiveSheet()const freezeState = worksheet.getFreeze()

獲取凍結列的數量

TypeScript
const worksheet = univerAPI.getActiveWorkbook().getActiveSheet()const frozenColumns = worksheet.getFrozenColumns()

獲取凍結行的數量

TypeScript
const worksheet = univerAPI.getActiveWorkbook().getActiveSheet()const frozenRows = worksheet.getFrozenRows()

取消凍結

TypeScript
const worksheet = univerAPI.getActiveWorkbook().getActiveSheet()// 取消所有凍結worksheet.cancelFreeze()

你覺得這篇文檔如何?

© 2026 DreamNum Co., Ltd.