如何允许使用xlsxwriter编辑受保护的单元格

时间:2019-04-22 18:08:04

标签: python-3.x xlsxwriter

我只需要在电子表格的标题行上应用保护,但同时我还想启用自动过滤功能

我能够根据以下代码完成这两项操作,但是它还会禁用电子表格中为空的单元格。例如,在我所附的屏幕截图中,“不允许我编辑单元格B9

df.to_excel(writer_template, sheet_name='inputs')

worksheet = writer_template.sheets['inputs']

unlocked = workbook.add_format({'locked': False})
locked   = workbook.add_format({'locked': True})

worksheet.set_column('B:G', None, unlocked)

# Turn worksheet protection on.
worksheet.protect(options={'autofilter': True})
worksheet.set_row(0, None, locked)
worksheet.set_row(1, None, locked)

worksheet.autofilter('A2:G500')

我的数据框如下所示:

enter image description here

1 个答案:

答案 0 :(得分:1)

弄清楚如何使用XlsxWriter进行操作的一种很好的通用方法是首先弄清楚如何在Excel中进行操作。

在Excel中,默认情况下所有单元格都具有locked属性,因此,如果“保护”工作表,则所有单元格都将被锁定以进行编辑。要在Excel中解决此问题,您必须解锁要允许用户更改的所有单元格。

因此,在您的XlsxWriter示例中,您将必须创建unlocked格式(类似于docs)并将其应用于允许用户编辑的单元格。