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

问题描述 投票:1回答:1

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

我可以根据下面的代码执行这两个操作,但它也会禁用电子表格中为空的单元格。例如,在我附上的屏幕截图中,它不允许我编辑单元格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

python-3.x xlsxwriter
1个回答
1
投票

了解如何使用XlsxWriter执行某些操作的一个很好的通用方法是首先弄清楚如何在Excel中执行此操作。

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

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

© www.soinside.com 2019 - 2024. All rights reserved.