xlswriter用解锁格式写空白单元格

时间:2016-11-15 04:03:33

标签: python-2.7 xlsxwriter

我正在使用xlsxwriter生成excel表。我使用worksheet.protect()来锁定整个工作表。但是,我希望解锁一组单元格。另外,我希望那些单元格是空白的。

我尝试使用worksheet.conditional_format(),但未成功。请帮忙。

我尝试使用worksheet.write()逐个单元格地应用格式化(解锁),但似乎需要提供一个值。如果我提供''空字符串,未应用解锁格式,但是如果我提供空格' ',我看到格式(解锁)已成功应用。

1 个答案:

答案 0 :(得分:1)

在Excel或XlsxWriter文件中,启用工作表保护后,默认情况下所有单元格都会被锁定。

要关闭单元格的保护,您需要在关闭lock属性的情况下添加格式。

如果您想要一个空白的未锁定单元格,请使用None或空字符串''作为write()的值或明确使用write_blank(),并使用以下格式:< / p>

import xlsxwriter

workbook = xlsxwriter.Workbook('test.xlsx')
worksheet = workbook.add_worksheet()

# Create a cell format with lock protection turned off.
unlocked = workbook.add_format({'locked': False})

# Format the columns to make the text more visible.
worksheet.set_column('A:A', 40)

# Turn worksheet protection on.
worksheet.protect()

# Write a locked and an unlocked cell.
worksheet.write('A1', 'Cell B1 is locked. It cannot be edited.')
worksheet.write('A2', 'Cell B2 is unlocked. It can be edited.')
worksheet.write('A3', 'Cell B3 is unlocked. It can be edited.')

worksheet.write('B1', 'Hello')  # Locked by default.
worksheet.write('B2', None, unlocked)
worksheet.write_blank('B3', None, unlocked)

workbook.close()

<强>输出

enter image description here

相关问题