我基本上复制了文档中的DataValidation使用示例( https://openpyxl.readthedocs.io/en/stable/validation.html)。openpyxl
唯一的区别是我将showDropDownarg 设置为True。不幸的是,这没有任何区别,即当我打开 Excel 工作表时,我看不到下拉菜单。事实上,它根本没有启用(比较截图)。
from openpyxl import Workbook
from openpyxl.worksheet.datavalidation import DataValidation
# Create the workbook and worksheet we'll be working with
wb = Workbook()
ws = wb.active
# Create a data-validation object with list validation
dv = DataValidation(
type="list", formula1='"Dog,Cat,Bat"', allow_blank=True, showDropDown=True
)
# Optionally set a custom error message
dv.error = "Your entry is not in the list"
dv.errorTitle = "Invalid Entry"
# Optionally set a custom prompt message
dv.prompt = "Please select from the list"
dv.promptTitle = "List Selection"
# Add the data-validation object to the worksheet
ws.add_data_validation(dv)
dv.add(ws["A1"])
wb.save(filename="dropdown_issue.xlsx")
Run Code Online (Sandbox Code Playgroud)
ApparentylshowDropDown是 的别名hide_drop_down。设置showDropDown=False就可以了。
这很令人困惑!前段时间已经在https://foss.heptapod.net/openpyxl/openpyxl/-/issues/1336上提出了一个问题。