设置窗格

  1. func (f *File) SetPanes(sheet, panes string)

通过给定的工作表名称和窗格样式参数设置冻结窗格或拆分窗格。

activePane 定义了活动窗格,下表为该属性的可选值:

枚举值描述
bottomLeft (Bottom Left Pane)当应用垂直和水平分割时,位于左下方的窗格。

此值也适用于仅应用了水平分割的情况,将窗格分为上下两个区域。在这种情况下,该值指定底部窗格。
bottomRight (Bottom Right Pane)当垂直和水平时,位于底部右侧的窗格。
topLeft (Top Left Pane)当应用垂直和水平分割时,位于左上方的窗格。

此值也适用于仅应用了水平分割的情况,将窗格分为上下两个区域。在这种情况下,该值指定顶部窗格。

此值也适用于仅应用垂直分割的情况,将窗格分割为右侧和左侧区域。在这种情况下,该值指定左侧窗格。
topRight (Top Right Pane)当应用垂直和水平分割时,位于右上方窗格。

此值也适用于仅应用垂直分割的情况,将窗格分割为右侧和左侧区域。在这种情况下,该值指定右侧窗格。

窗格状态类型仅限于下表中当前列出的受支持的值:

枚举值描述
frozen (Frozen)窗格被冻结,但并不分裂。在此状态下,当窗格被解除冻结然后再次解冻时,会生成单个窗格,而不会被分割。

在这种状态下,分割条不可调节。
split (Split)窗格被分裂,但并不冻结。在此状态下,用户可以调整分割条。

x_split - 水平分割点的位置。如果窗格冻结,则此值用于设置顶部窗格中可见的列数。

y_split - 垂直分割点的位置。如果窗格冻结,则此值用于设置左侧窗格中可见的行数。该属性的可能值由 W3C XML Schema double 数据类型定义。

top_left_cell - 处于“从左到右”模式时,右下方窗格中左上角可见单元格的位置。

sqref - 参考单元格坐标区域。可以是非连续的一组单元格坐标区域。

例1,在名为 Sheet1 的工作表上冻结列 A 并设置活动单元格 Sheet1!K16

冻结列

  1. f.SetPanes("Sheet1", `{
  2. "freeze": true,
  3. "split": false,
  4. "x_split": 1,
  5. "y_split": 0,
  6. "top_left_cell": "B1",
  7. "active_pane": "topRight",
  8. "panes": [
  9. {
  10. "sqref": "K16",
  11. "active_cell": "K16",
  12. "pane": "topRight"
  13. }]
  14. }`)

例2,在名为 Sheet1 的工作表上冻结第 1 到第 9 行,并设置活动单元格区域 Sheet1!A11:XFD11

冻结列并设置活动单元格区域

  1. f.SetPanes("Sheet1", `{
  2. "freeze": true,
  3. "split": false,
  4. "x_split": 0,
  5. "y_split": 9,
  6. "top_left_cell": "A34",
  7. "active_pane": "bottomLeft",
  8. "panes": [
  9. {
  10. "sqref": "A11:XFD11",
  11. "active_cell": "A11",
  12. "pane": "bottomLeft"
  13. }]
  14. }`)

例3,在名为 Sheet1 的工作表上创建拆分窗格,并设置活动单元格 Sheet1!J60

创建拆分窗格

  1. f.SetPanes("Sheet1", `{
  2. "freeze": false,
  3. "split": true,
  4. "x_split": 3270,
  5. "y_split": 1800,
  6. "top_left_cell": "N57",
  7. "active_pane": "bottomLeft",
  8. "panes": [
  9. {
  10. "sqref": "I36",
  11. "active_cell": "I36"
  12. },
  13. {
  14. "sqref": "G33",
  15. "active_cell": "G33",
  16. "pane": "topRight"
  17. },
  18. {
  19. "sqref": "J60",
  20. "active_cell": "J60",
  21. "pane": "bottomLeft"
  22. },
  23. {
  24. "sqref": "O60",
  25. "active_cell": "O60",
  26. "pane": "bottomRight"
  27. }]
  28. }`)

例4,解冻并删除名为 Sheet1 上的所有窗格:

  1. f.SetPanes("Sheet1", `{"freeze":false,"split":false}`)