Python XlsxWriter - 数据验证



Excel 中的数据验证功能允许您控制用户可以在单元格中输入的内容。您可以使用它来确保单元格中的值是指定范围内的数字/日期、具有所需长度的文本,或提供一个下拉菜单以从中选择值。

数据验证工具位于“数据”菜单中。第一个选项卡允许您设置验证条件。下图显示该条件要求单元格应包含 1 到 25 之间的整数 -

Data Validation

在第二个选项卡中,设置当用户光标位于所需单元格(在本例中为“输入 1 到 25 之间的任何整数”)时要显示的消息。您还可以设置消息标题;在本例中为“年龄”。

Data Validation1

第三个选项卡允许您定义任何错误消息,如果您希望在验证条件失败时显示。

Data Validation2

当用户将光标放在 I10(已设置验证)中时,您可以看到输入消息。

Age1

当输入的数字不在范围内时,将显示错误消息。

Age2

使用 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 单元格时,将出现下拉列表 -

Dropdown List

示例

如果要让用户输入长度大于 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 个,则会弹出错误消息,如下所示 -

String
广告

© . All rights reserved.