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

它将创建以下工作表 -

隐藏

您无法隐藏“活动”工作表(通常是第一个工作表),因为这会导致Excel 错误。因此,为了隐藏第一个工作表,您将需要激活另一个工作表。

sheet2.activate()
sheet1.hide()

隐藏特定行或列

要隐藏工作表中的特定行或列,请在set_row()set_column()方法中将隐藏参数设置为 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 列在下面的工作表中不可见 -

隐藏栏

类似地,我们可以在隐藏参数的帮助下使用set_row()方法隐藏行。

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

这是结果 -

隐藏行