Python XlsxWriter - 凍結和拆分窗格



freeze_panes() 方法

XlsxWriter 庫中 Worksheet 物件的freeze_panes() 方法將工作表劃分為水平或垂直區域,稱為窗格,並“凍結”其中一個或兩個窗格,以便當我們向下滾動或向右滾動時,窗格(分別為頂部或左側)保持靜止。

該方法需要引數rowcol 來指定拆分的位置。需要注意的是,拆分是在單元格的頂部或左側指定的,並且該方法使用基於零的索引。如果不想進行垂直或水平拆分,可以將其中一個 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)

以下螢幕截圖顯示列 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() 方法

split_panes() 方法也將其工作表劃分為水平或垂直區域,稱為窗格,但與freeze_panes() 方法不同的是,窗格之間的拆分將對使用者可見,並且每個窗格將具有自己的捲軸。

該方法具有引數“y”和“x”,用於指定拆分的垂直和水平位置。這些引數以 Excel 使用的行高和列寬表示。行高和列寬的預設值為行 15 和列 8.43。

如果不想進行垂直或水平拆分,可以將其中一個“y”和“x”引數設定為零。

要在第 10 行和第 7 列建立拆分,請如下使用split_panes() 方法:

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()

輸出

執行程式碼並使用 Excel 開啟hello.xlsx。我們可以看到,工作表在第 10 行和第 7 列被拆分為不同的窗格。

Split Panes
廣告

© . All rights reserved.