Python XlsxWriter 冻结和拆分窗格


The 冻结窗格() XlsxWriter 库中 Worksheet 对象的方法将工作表划分或拆分为称为窗格的水平或垂直区域,并“冻结”这些窗格中的一个或两个,这样如果我们向下滚动或向下滚动或向右滚动,窗格(顶部或分别左)保持静止。

该方法需要参数 row and col 指定拆分的位置。应该注意的是,拆分是在单元格的顶部或左侧指定的,并且该方法使用基于零的索引。如果你不想要垂直或水平拆分,你可以将 row 和 col 参数之一设置为零。

例子

以下示例中的工作表显示每行中列号的递增倍数,以便每个单元格显示行号和列号的乘积。

import xlsxwriter

wb = xlsxwriter.Workbook('hello.xlsx')
worksheet = wb.add_worksheet()
format1=wb.add_format({'bg_color':'#D9D9D9', 'bold':True})

for col in range(0, 15):
    worksheet.write(0, col, col+1, format1)
   
for row in range(1, 51):
    for col in range(0,15):
        if col==0:
            worksheet.write(row,col,(col+1)*(row + 1), format1)
        else:
            worksheet.write(row,col,(col+1)*(row + 1))
# Freeze pane on the top row.
worksheet.freeze_panes(1, 0)

wb.close()

然后我们冻结 顶行窗格 .因此,打开工作表后,如果单元格指针向下滚动,则顶行始终保留在工作表上。

Top Row

同样,我们可以使 第一列 静止的。

# Freeze pane on the first column.
worksheet.freeze_panes(0, 1)

以下屏幕截图显示 column A 即使我们向右滚动,它仍然可见。

Column A

通过将 freeze_panes() 方法中的 row 和 column 参数设置为 1,顶行和最左边的列都将冻结。

# Freeze pane on the first row, first column.
worksheet.freeze_panes(1, 1)

打开生成的工作表并滚动单元格光标。你会发现顶部行和最左侧列中的行号和列号始终可见。

Freeze Panes

split_panes() 方法


The 拆分窗格() 方法还将工作表划分为称为窗格的水平或垂直区域,但与 冻结窗格() 方法,窗格之间的拆分将对用户可见,并且每个窗格都有自己的滚动条。

该方法具有参数“y”和“x”,用于指定拆分的垂直和水平位置。这些参数是 Excel 使用的行高和列宽。行高和列宽的默认值是一行 15 和一列 8.43。

如果你不想要垂直或水平拆分,你可以将“y”和“x”参数之一设置为零。

要在第 10 行和第 7 列创建拆分, 拆分窗格() 方法使用如下:

worksheet.split_panes(15*10, 8.43*7)

你将在工作表的第 10 行和第 7 列找到拆分器。你可以将窗格滚动到垂直拆分器的左侧和右侧以及水平拆分器的顶部和底部。请注意,其他窗格将保持不变。

例子

这是创建拆分器的完整代码,下面显示了输出:

import xlsxwriter

wb = xlsxwriter.Workbook('hello.xlsx')
worksheet = wb.add_worksheet()
format1=wb.add_format({'bg_color':'#D9D9D9', 'bold':True})

for col in range(0, 15):
    worksheet.write(0, col, col+1, format1)
   
for row in range(1, 51):
    for col in range(0,15):
        if col==0:
            worksheet.write(row,col,(col+1)*(row + 1), format1)
        else:
            worksheet.write(row,col,(col+1)*(row + 1))
worksheet.split_panes(15*10, 8.43*7)

wb.close()

运行代码并打开 你好.xlsx 使用 Excel。正如我们所看到的,工作表在第 10 行和第 7 列被分成不同的窗格。

Split Panes