Python XlsxWriter - 隱藏/保護工作表



工作表物件的hide()方法使工作表消失,直到透過Excel選單取消隱藏。

在下面的工作表中,共有三個工作表,其中sheet2是隱藏的。

sheet1 = workbook.add_worksheet()
sheet2 = workbook.add_worksheet()
sheet3 = workbook.add_worksheet()

# Hide Sheet2. It won't be visible until it is unhidden in Excel.
worksheet2.hide()

它將建立以下工作表:

Hide

你不能隱藏“活動”工作表(通常是第一個工作表),因為這會導致Excel錯誤。因此,為了隱藏第一個工作表,你需要啟用另一個工作表。

sheet2.activate()
sheet1.hide()

隱藏特定行或列

要在工作表中隱藏特定行或列,請在set_row()set_column()方法中將hidden引數設定為1。以下語句隱藏活動工作表中的C、D和E列。

worksheet.set_column('C:E', None, None, {'hidden': 1})

示例

考慮以下程式:

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.set_column('C:E', None, None, {'hidden': 1})

wb.close()

輸出

執行上述程式碼的結果是,下面的工作表中C、D和E列不可見:

Hide Column

類似地,我們可以使用set_row()方法和hidden引數隱藏行。

for row in range(5, 7):
   worksheet.set_row(row, None, None, {'hidden':1})

以下是結果:

Hide Row
廣告