在使用xlwt进行Excel文件处理时,经常需要在Excel表格中添加数据验证。xlwt提供了Worksheet.add_data_validation函数来实现数据验证的功能。
作用
Worksheet.add_data_validation函数用于在Worksheet中创建一个数据验证(DV)对象,可以设置数据验证的类型和条件。
使用方法
使用Worksheet.add_data_validation函数,需要根据需要的数据验证类型设定数据验证对象。一个DV对象可以设置为指定范围的单元格,然后再设置数据验证类型、数据验证值等参数,并将其附加到 Worksheet 上实现数据验证的功能。
下面是该函数的语法:
add_data_validation(self, dv_type=None, criteria=None, minimum=None, maximum=None, value=None)
该函数支持的参数如下:
-
dv_type
: 验证类型。必选参数,有以下类型:xlwt.DataValidation.TYPE_ANY
: 任何值都可以xlwt.DataValidation.TYPE_FLOAT
: 浮点类型xlwt.DataValidation.TYPE_INT
: 整型xlwt.DataValidation.TYPE_LIST
: 取值列表xlwt.DataValidation.TYPE_TEXT_LENGTH
: 字符串长度限制
-
criteria
: 条件类型。可选参数,仅在TYPE_FLOAT
和TYPE_INT
类型下可用。有以下条件:xlwt.DataValidation.CRITERIA_BETWEEN
xlwt.DataValidation.CRITERIA_NOT_BETWEEN
xlwt.DataValidation.CRITERIA_EQUAL_TO
xlwt.DataValidation.CRITERIA_NOT_EQUAL_TO
xlwt.DataValidation.CRITERIA_GREATER_THAN
xlwt.DataValidation.CRITERIA_LESS_THAN
xlwt.DataValidation.CRITERIA_GREATER_OR_EQUAL_TO
xlwt.DataValidation.CRITERIA_LESS_OR_EQUAL_TO
-
minimum
和maximum
: 取值范围。可选参数,仅在TYPE_FLOAT
和TYPE_INT
类型下可用。 -
value
: 允许的取值列表。可选参数,仅在TYPE_LIST
类型下可用。
示例
例一
该示例将设置一个范围,设为A20到A30之间。然后,对该数据范围实施数据验证,进行数字范围限制的控制,不允许超出限定范围之外的值。
import xlwt
work_book = xlwt.Workbook(encoding='utf-8')
sheet = work_book.add_sheet('sheet1')
# 设置范围
first_row, last_row = 19, 29
first_col, last_col = 0, 0
dv = xlwt.DataValidation()
dv.add_range(first_row, first_col, last_row, last_col)
# 设置条件
dv_type = xlwt.DataValidation.TYPE_INT
dv_criteria = xlwt.DataValidation.CRITERIA_BETWEEN
dv.minimum = 1
dv.maximum = 10
dv.set_error('只能输入数字范围(1-10)')
dv.set_input_title('输入数字范围:')
dv.set_error_style('alert alert-error')
dv.set_dropdown_true()
sheet.add_data_validation(dv)
work_book.save('ExcelValidation.xlsx')
上述代码中,首先生成一个空的Workbook对象,然后创建一个Sheet对象。然后根据需要设置数据范围和验证条件,设置展示的提示信息和错误提示信息以及失去焦点强制验证输入内容的类型等参数。最后将数据验证对象添加到Sheet中并保存。
例二
下面这个示例用于展示如何使用数据验证中的列表选项,用户必须从预设的可选项中进行选择。
work_book = xlwt.Workbook(encoding='utf-8')
sheet = work_book.add_sheet('sheet1')
# 设置范围
first_row, last_row = 0, 9
first_col, last_col = 0, 0
# 设置内容选项
data_list = ["总体评估", "需求分析", "系统设计", "编码测试", "应用部署"]
dv = xlwt.DataValidation()
dv.type = xlwt.DataValidation.TYPE_LIST
dv.add_range(first_row, first_col, last_row, last_col)
dv.value = data_list
sheet.add_data_validation(dv)
work_book.save('ExcelValidation2.xlsx')
上述代码中,同样首先生成一个新建的Workbook对象,然后创建一个Sheet对象。然后通过设置dv对象的value属性,将需要的列表选项传入到需要展示的Channel中。
注意
- 添加数据验证后,excel文件要保存后才能生效。
- 数据验证的生效需要打开Excel文件并激活所有工作表。
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解xlwt的 Worksheet.add_data_validation 函数:添加数据验证规则 - Python技术站