凍結
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 列}凍結窗格示意
向下、向右捲動,觀察哪些儲存格留在原位。
| A | B | C | D | E | F | G | H | |
|---|---|---|---|---|---|---|---|---|
| 1 | A1 | B1 | C1 | D1 | E1 | F1 | G1 | H1 |
| 2 | A2 | B2 | C2 | D2 | E2 | F2 | G2 | H2 |
| 3 | A3 | B3 | C3 | D3 | E3 | F3 | G3 | H3 |
| 4 | A4 | B4 | C4 | D4 | E4 | F4 | G4 | H4 |
| 5 | A5 | B5 | C5 | D5 | E5 | F5 | G5 | H5 |
| 6 | A6 | B6 | C6 | D6 | E6 | F6 | G6 | H6 |
| 7 | A7 | B7 | C7 | D7 | E7 | F7 | G7 | H7 |
| 8 | A8 | B8 | C8 | D8 | E8 | F8 | G8 | H8 |
| 9 | A9 | B9 | C9 | D9 | E9 | F9 | G9 | H9 |
| 10 | A10 | B10 | C10 | D10 | E10 | F10 | G10 | H10 |
| 11 | A11 | B11 | C11 | D11 | E11 | F11 | G11 | H11 |
| 12 | A12 | B12 | C12 | D12 | E12 | F12 | G12 | H12 |
| 13 | A13 | B13 | C13 | D13 | E13 | F13 | G13 | H13 |
| 14 | A14 | B14 | C14 | D14 | E14 | F14 | G14 | H14 |
| 15 | A15 | B15 | C15 | D15 | E15 | F15 | G15 | H15 |
| 16 | A16 | B16 | C16 | D16 | E16 | F16 | G16 | H16 |
| 17 | A17 | B17 | C17 | D17 | E17 | F17 | G17 | H17 |
| 18 | A18 | B18 | C18 | D18 | E18 | F18 | G18 | H18 |
{
"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()你覺得這篇文檔如何?