我正在尝试按照 openpyxl documentaion 对一组单元格启用数据验证,但是当我打开文件时没有任何变化。 我已经在程序的另一部分成功锁定/解锁了本工作簿中的单元格。
import openpyxl
file_path = 'file.xlsx'
sheet_name = 'Sheet1'
workbook = openpyxl.load_workbook(filename=file_path, read_only=False)
ws = workbook[sheet_name]
cells = [ws.cell(1,1), ws.cell(1,2), ws.cell(1,3)]
validator_type = 'whole'
validator = openpyxl.worksheet.datavalidation.DataValidation(type=validator_type)
ws.add_data_validation(validator)
for cell in cells:
validator.add(cell)
workbook.save(file_path)
在尝试解决这个问题时,我:
进一步评论。
默认情况下,单元格将具有如下所示的数据验证(DV)设置;
但是您没有为“数据”以及随后的“公式”设置任何内容(这取决于您为“数据”设置的内容)。
即如 Openpyxl 示例所示,当您将类型设置为“整体”时,您将设置所有三个值
validator = DataValidation(type="whole",
operator="greaterThan",
formula1=100)
仅设置 type="whole" 表示 DV 无效。
如果您在 Excel 中尝试这样做,只需将“允许”设置为“整数”,然后单击“确定”,您就会收到错误消息。
额外信息
工作表 xml ('sheet1.xml')
DV 代码应将“dataValidations”部分添加到工作表 xml 中,如下所示。
<dataValidations count="1">
<dataValidation sqref="A1 B1 C1" showDropDown="0" showInputMessage="0" showErrorMessage="0" allowBlank="0" type="whole"/>
</dataValidations>