设置窗格
func (f *File) SetPanes(sheet string, panes *Panes) error
通过给定的工作表名称和窗格样式参数设置冻结窗格或拆分窗格。
ActivePane
定义了活动窗格,下表为该属性的可选值:
枚举值 | 描述 |
---|---|
bottomLeft (Bottom Left Pane) | 当应用垂直和水平分割时,位于左下方的窗格。 此值也适用于仅应用了水平分割的情况,将窗格分为上下两个区域。在这种情况下,该值指定底部窗格。 |
bottomRight (Bottom Right Pane) | 当垂直和水平时,位于底部右侧的窗格。 |
topLeft (Top Left Pane) | 当应用垂直和水平分割时,位于左上方的窗格。 此值也适用于仅应用了水平分割的情况,将窗格分为上下两个区域。在这种情况下,该值指定顶部窗格。 此值也适用于仅应用垂直分割的情况,将窗格分割为右侧和左侧区域。在这种情况下,该值指定左侧窗格。 |
topRight (Top Right Pane) | 当应用垂直和水平分割时,位于右上方窗格。 此值也适用于仅应用垂直分割的情况,将窗格分割为右侧和左侧区域。在这种情况下,该值指定右侧窗格。 |
窗格状态类型仅限于下表中当前列出的受支持的值:
枚举值 | 描述 |
---|---|
frozen (Frozen) | 窗格被冻结,但并不分裂。在此状态下,当窗格被解除冻结然后再次解冻时,会生成单个窗格,而不会被分割。 在这种状态下,分割条不可调节。 |
split (Split) | 窗格被分裂,但并不冻结。在此状态下,用户可以调整分割条。 |
XSplit
- 水平分割点的位置。如果窗格冻结,则此值用于设置顶部窗格中可见的列数。
YSplit
- 垂直分割点的位置。如果窗格冻结,则此值用于设置左侧窗格中可见的行数。该属性的可能值由 W3C XML Schema double 数据类型定义。
TopLeftCell
- 处于“从左到右”模式时,右下方窗格中左上角可见单元格的位置。
SQRef
- 参考单元格坐标区域。可以是非连续的一组单元格坐标区域。
例1,在名为 Sheet1
的工作表上冻结列 A
并设置活动单元格 Sheet1!K16
:
err := f.SetPanes("Sheet1", &excelize.Panes{
Freeze: true,
XSplit: 1,
TopLeftCell: "B1",
ActivePane: "topRight",
Selection: []excelize.Selection{
{SQRef: "K16", ActiveCell: "K16", Pane: "topRight"},
},
})
例2,在名为 Sheet1
的工作表上冻结第 1 到第 9 行,并设置活动单元格区域 Sheet1!A11:XFD11
:
err := f.SetPanes("Sheet1", &excelize.Panes{
Freeze: true,
YSplit: 9,
TopLeftCell: "A34",
ActivePane: "bottomLeft",
Selection: []excelize.Selection{
{SQRef: "A11:XFD11", ActiveCell: "A11", Pane: "bottomLeft"},
},
})
例3,在名为 Sheet1
的工作表上创建拆分窗格,并设置活动单元格 Sheet1!J60
:
err := f.SetPanes("Sheet1", &excelize.Panes{
Split: true,
XSplit: 3270,
YSplit: 1800,
TopLeftCell: "N57",
ActivePane: "bottomLeft",
Selection: []excelize.Selection{
{SQRef: "I36", ActiveCell: "I36"},
{SQRef: "G33", ActiveCell: "G33", Pane: "topRight"},
{SQRef: "J60", ActiveCell: "J60", Pane: "bottomLeft"},
{SQRef: "O60", ActiveCell: "O60", Pane: "bottomRight"},
},
})
例4,解冻并删除名为 Sheet1
上的所有窗格:
err := f.SetPanes("Sheet1", &excelize.Panes{Freeze: false, Split: false})