Python Xlsxwriter 简明教程

Python XlsxWriter - Data Validation

Excel 中的 Data validation 特性使您可以控制用户在单元格中输入的内容。您可以使用此特性确保单元格中的值是处于特定范围内的数字/日期、具有所需长度的文本,或以下拉菜单形式显示用于从其中选择值的列表。

数据验证工具在“数据”菜单中提供。第一个选项卡允许您设置验证条件。下图显示条件需要单元格包含 1 到 25 之间的整数:

data validation

在第二个选项卡中,设置当用户光标所在期望单元格时闪现的消息,在本例中为“输入 1 到 25 之间的任意整数”。您还可以设置消息标题;在本例中为“年龄”。

data validation1

第三个选项卡允许您定义任意错误消息,如果验证条件未能满足,则会闪现此错误消息。

data validation2

当用户将光标置于 I10(为此设置了验证)中时,您会看到输入消息。

age1

当输入的数字不在该范围内时,错误消息将闪烁。

age2

Working with XlsxWriter Data Validation

您可以使用 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() 方法接受 options 参数,该参数是一个包含以下参数的字典:

  1. validate :用于设置要验证的数据类型。允许的值为整数、小数、列表、日期、时间、长度等。

  2. criteria :用于设置验证条件。它可以设置为任意逻辑运算符,包括 between / not between==!=<>⇐>= 等。

  3. value :设置条件所应用的限定值。始终需要此值。使用列表验证时,它给定为以逗号分隔的值字符串。

  4. input_title − 用于当光标放置于目标单元格时设置输入消息的标题。

  5. input_message − 输入单元格时要显示的消息。

  6. error_title − 不满足验证条件时要显示的错误消息的标题。

  7. error_message − 设置错误消息。默认错误消息为“您输入的值无效。用户已限制可以输入单元格的值。”

Example

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',
   }
)

Example

带有下拉列表的验证的修改后的程序如下所示 −

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()

Output

当光标放置在 I10 单元格中时出现下拉列表 −

dropdown list

Example

如果您想要让用户输入长度大于 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()

Output

如果字符串少于 5 个字符,则错误消息会弹出如下所示 −

string