Python XlsxWriter - 数据验证
Excel 中的数据验证 功能允许您控制用户可以在单元格中输入的内容。 您可以使用它来确保单元格中的值是指定范围内的数字/日期、具有所需长度的文本,或者显示一个下拉菜单以从中选择值。
数据验证工具在"数据"菜单中可用。 第一个选项卡允许您设置验证标准。 下图显示条件要求单元格应包含 1 到 25 之间的整数 −
在第二个选项卡中,设置当用户光标位于所需单元格上时闪烁的消息,在本例中为"输入 1 到 25 之间的任何整数"。 您还可以设置消息标题; 在这种情况下是年龄。
第三个选项卡允许您定义在验证标准失败时要闪烁的任何错误消息。
当用户将光标放在 I10(已设置验证)时,您可以看到输入消息。
当输入的数字不在范围内时,错误信息会闪烁。
使用 XlsxWriter 数据验证
您可以使用 data_validation() 方法以编程方式设置验证标准、输入和错误消息。
worksheet.data_validation( 'I10', { 'validate': 'integer','criteria': 'between', 'minimum': 1,'maximum': 25, 'input_title': 'Enter an integer:', 'input_message': 'between 1 and 25', 'error_title': 'Input value is not valid!', 'error_message': 'It should be an integer between 1 and 25' } )
data_validation() 方法接受选项参数作为具有以下参数的字典 −
validate − 它用于设置您希望验证的数据类型。 允许的值为整数、小数、列表、日期、时间、长度等。
criteria − 它用于设置验证标准。 它可以设置为任何逻辑运算符,包括 between/ not between, ==, !=, <、>、<=、>= 等。
value − 设置应用标准的限制值。 它始终是必需的。 使用列表验证时,它以逗号分隔的变量字符串形式给出。
input_title − 用于设置光标放在目标单元格时输入消息的标题。
input_message − 输入单元格时显示的消息。
error_title − 不满足验证条件时显示的错误消息的标题。
error_message − 设置错误信息。 默认错误消息是"您输入的值无效。用户限制了可以输入到单元格中的值。"
示例
data_validation() 方法的使用导致数据验证功能的行为如上图所示。
import xlsxwriter wb = xlsxwriter.Workbook('hello.xlsx') worksheet = wb.add_worksheet() worksheet.data_validation( 'I10', { 'validate': 'integer','criteria': 'between', 'minimum': 1,'maximum': 25, 'input_title': 'Enter an integer:', 'input_message': 'between 1 and 25', 'error_title': 'Input value is not valid!', 'error_message':'It should be an integer between 1 and 25' } ) wb.close()
作为另一个示例,单元格 I10 设置了验证标准,以强制用户从下拉列表中的字符串列表中选择其值。
worksheet.data_validation( 'I10', { 'validate': 'list', 'source': ['Mumbai', 'Delhi', 'Chennai', 'Kolkata'], 'input_title': 'Choose one:', 'input_message': 'Select a value from th list', } )
示例
修改后的下拉列表校验程序如下 −
import xlsxwriter wb = xlsxwriter.Workbook('hello.xlsx') worksheet = wb.add_worksheet() worksheet.data_validation( 'I10', { 'validate': 'list', 'source': ['Mumbai', 'Delhi', 'Chennai', 'Kolkata'], 'input_title': 'Choose one:', 'input_message': 'Select a value from the list', } ) wb.close()
输出
当光标放在 I10 单元格时出现下拉列表 −
示例
如果要让用户输入长度大于 5 的字符串,请使用 >= 作为条件并将值设置为 5。
import xlsxwriter wb = xlsxwriter.Workbook('hello.xlsx') worksheet = wb.add_worksheet() worksheet.data_validation( 'I10',{ 'validate': 'length', 'criteria': '>=','value': 5,'input_title': 'Enter name:', 'input_message': 'Minimum length 5 character', 'error_message':'Name should have at least 5 characters' } ) wb.close()
输出
如果字符串少于5个字符,会弹出如下错误信息 −