数据验证规则的构建器。
// Set the data validation for cell A1 to require a value from B1:B10. var cell = SpreadsheetApp.getActive().getRange('A1'); var range = SpreadsheetApp.getActive().getRange('B1:B10'); var rule = SpreadsheetApp.newDataValidation().requireValueInRange(range).build(); cell.setDataValidation(rule);
方法
详细文档
build()
copy()
根据此规则的设置为数据验证规则创建构建器。
// Change existing data validation rules that require a date in 2013 to require a date in 2014. var oldDates = [new Date('1/1/2013'), new Date('12/31/2013')]; var newDates = [new Date('1/1/2014'), new Date('12/31/2014')]; var sheet = SpreadsheetApp.getActiveSheet(); var range = sheet.getRange(1, 1, sheet.getMaxRows(), sheet.getMaxColumns()); var rules = range.getDataValidations(); for (var i = 0; i < rules.length; i++) { for (var j = 0; j < rules[i].length; j++) { var rule = rules[i][j]; if (rule != null) { var criteria = rule.getCriteriaType(); var args = rule.getCriteriaValues(); if (criteria == SpreadsheetApp.DataValidationCriteria.DATE_BETWEEN && args[0].getTime() == oldDates[0].getTime() && args[1].getTime() == oldDates[1].getTime()) { // Create a builder from the existing rule, then change the dates. rules[i][j] = rule.copy().withCriteria(criteria, newDates).build(); } } } } range.setDataValidations(rules);
弃踢回攻
DataValidationBuilder
- 基于此规则设置的构建器
getAllowInvalid()
如果规则在输入数据验证失败时显示警告,则返回 true
;如果完全拒绝输入,则返回 false
。新数据验证规则的默认值为 true
。
弃踢回攻
Boolean
- 如果规则允许输入未通过数据验证的输入,则为 true
;如果不允许,则为 false
getCriteriaType()
获取 DataValidationCriteria
枚举中定义的规则的条件类型。如需获取条件的参数,请使用 getCriteriaValues()
。如需使用这些值创建或修改数据验证规则,请参阅 withCriteria(criteria, args)
。
// Log information about the data validation rule for cell A1. var cell = SpreadsheetApp.getActive().getRange('A1'); var rule = cell.getDataValidation(); if (rule != null) { var criteria = rule.getCriteriaType(); var args = rule.getCriteriaValues(); Logger.log('The data validation rule is %s %s', criteria, args); } else { Logger.log('The cell does not have a data validation rule.') }
弃踢回攻
DataValidationCriteria
- 数据验证条件的类型
getCriteriaValues()
获取规则条件的参数数组。如需获取条件类型,请使用 getCriteriaType()
。如需使用这些值创建或修改数据验证规则,请参阅 withCriteria(criteria, args)
。
// Log information about the data validation rule for cell A1. var cell = SpreadsheetApp.getActive().getRange('A1'); var rule = cell.getDataValidation(); if (rule != null) { var criteria = rule.getCriteriaType(); var args = rule.getCriteriaValues(); Logger.log('The data validation rule is %s %s', criteria, args); } else { Logger.log('The cell does not have a data validation rule.') }
弃踢回攻
Object[]
- 适合规则的条件类型的参数数组;参数的数量和类型与 DataValidationBuilder
类的相应 require...()
方法一致
getHelpText()
获取规则的帮助文本,如果未设置帮助文本,则返回 null
。
弃踢回攻
String
- 规则的帮助文本,如果未设置帮助文本,则为 null
requireCheckbox()
将数据验证规则设置为要求输入值是布尔值;此值将呈现为复选框。
// Set the data validation for cell A1 to require a boolean value; the value is rendered as a // checkbox. var cell = SpreadsheetApp.getActive().getRange('A1'); var rule = SpreadsheetApp.newDataValidation().requireCheckbox().build(); cell.setDataValidation(rule);
弃踢回攻
DataValidationBuilder
- 此构建器,用于链接
requireCheckbox(checkedValue)
将数据验证规则设置为要求输入值必须为指定值或为空。当输入与指定值匹配时,单元格会呈现为选中的复选框。当输入内容为空时,单元格会呈现为未选中的复选框。
// Set the data validation for cell A1 to require a custom checked value that is rendered as a // checkbox. var cell = SpreadsheetApp.getActive().getRange('A1'); var rule = SpreadsheetApp.newDataValidation().requireCheckbox('APPROVED').build(); cell.setDataValidation(rule);
参数
名称 | 类型 | 说明 |
---|---|---|
checkedValue | Object | 为选中的复选框分配的值。 |
弃踢回攻
DataValidationBuilder
- 此构建器,用于链接
requireCheckbox(checkedValue, uncheckedValue)
将数据验证规则设置为要求输入值必须为指定值之一。当输入为 checkedValue
时,单元格会呈现为选中的复选框。当输入为 uncheckedValue
时,单元格会呈现为未选中的复选框。
// Set the data validation for cell A1 to require custom checked values that are rendered as a // checkbox. var cell = SpreadsheetApp.getActive().getRange('A1'); var rule = SpreadsheetApp.newDataValidation().requireCheckbox('APPROVED', 'PENDING').build(); cell.setDataValidation(rule);
参数
名称 | 类型 | 说明 |
---|---|---|
checkedValue | Object | 为选中的复选框分配的值。 |
uncheckedValue | Object | 为未选中的框分配的值。 |
弃踢回攻
DataValidationBuilder
- 此构建器,用于链接
requireDate()
将数据验证规则设置为要求提供日期。
// Set the data validation for cell A1 to require a date. var cell = SpreadsheetApp.getActive().getRange('A1'); var rule = SpreadsheetApp.newDataValidation().requireDate().build(); cell.setDataValidation(rule);
弃踢回攻
DataValidationBuilder
- 此构建器,用于链接
requireDateAfter(date)
将数据验证规则设置为要求提供晚于指定值的日期。系统会忽略 Date
对象的时间字段,仅使用日、月和年字段。
// Set the data validation for cell A1 to require a date after January 1, 2013. var cell = SpreadsheetApp.getActive().getRange('A1'); var rule = SpreadsheetApp.newDataValidation().requireDateAfter(new Date('1/1/2013')).build(); cell.setDataValidation(rule);
参数
名称 | 类型 | 说明 |
---|---|---|
date | Date | 不接受的最晚日期。 |
弃踢回攻
DataValidationBuilder
- 此构建器,用于链接
requireDateBefore(date)
将数据验证规则设置为要求日期早于指定值。系统会忽略 Date
对象的时间字段,仅使用日、月和年字段。
// Set the data validation for cell A1 to require a date before January 1, 2013. var cell = SpreadsheetApp.getActive().getRange('A1'); var rule = SpreadsheetApp.newDataValidation().requireDateBefore(new Date('1/1/2013')).build(); cell.setDataValidation(rule);
参数
名称 | 类型 | 说明 |
---|---|---|
date | Date | 不接受的最早日期。 |
弃踢回攻
DataValidationBuilder
- 此构建器,用于链接
requireDateBetween(start, end)
将数据验证规则设置为要求所指定的日期介于两个指定日期之间或其中任一日期。系统会忽略 Date
对象的时间字段,仅使用日、月和年字段。
// Set the data validation for cell A1 to require a date in 2013. var cell = SpreadsheetApp.getActive().getRange('A1'); var rule = SpreadsheetApp.newDataValidation() .requireDateBetween(new Date('1/1/2013'), new Date('12/31/2013')).build(); cell.setDataValidation(rule);
参数
名称 | 类型 | 说明 |
---|---|---|
start | Date | 可接受的最早日期。 |
end | Date | 可接受的最晚日期。 |
弃踢回攻
DataValidationBuilder
- 此构建器,用于链接
requireDateEqualTo(date)
将数据验证规则设置为要求日期与指定值一致。系统会忽略 Date
对象的时间字段,仅使用日、月和年字段。
// Set the data validation for cell A1 to require a date equal to January 1, 2013. var cell = SpreadsheetApp.getActive().getRange('A1'); var rule = SpreadsheetApp.newDataValidation().requireDateEqualTo(new Date('1/1/2013')) .build(); cell.setDataValidation(rule);
参数
名称 | 类型 | 说明 |
---|---|---|
date | Date | 唯一可接受的日期。 |
弃踢回攻
DataValidationBuilder
- 此构建器,用于链接
requireDateNotBetween(start, end)
将数据验证规则设置为要求所指定的日期既不在两个指定日期之间,也不包含在两个指定日期之间。系统会忽略 Date
对象的时间字段,仅使用日、月和年字段。
// Set the data validation for cell A1 to require a date not in 2013. var cell = SpreadsheetApp.getActive().getRange('A1'); var rule = SpreadsheetApp.newDataValidation() .requireDateNotBetween(new Date('1/1/2013'), new Date('12/31/2013')).build(); cell.setDataValidation(rule);
参数
名称 | 类型 | 说明 |
---|---|---|
start | Date | 不接受的最早日期。 |
end | Date | 不接受的最晚日期。 |
弃踢回攻
DataValidationBuilder
- 此构建器,用于链接
requireDateOnOrAfter(date)
将数据验证规则设置为要求提供不早于指定值的日期。系统会忽略 Date
对象的时间字段,仅使用日、月和年字段。
// Set the data validation for cell A1 to require a date on or after January 1, 2013. var cell = SpreadsheetApp.getActive().getRange('A1'); var rule = SpreadsheetApp.newDataValidation() .requireDateOnOrAfter(new Date('1/1/2013')).build(); cell.setDataValidation(rule);
参数
名称 | 类型 | 说明 |
---|---|---|
date | Date | 可接受的最早日期。 |
弃踢回攻
DataValidationBuilder
- 此构建器,用于链接
requireDateOnOrBefore(date)
将数据验证规则设置为要求提供不晚于指定值的日期。系统会忽略 Date
对象的时间字段,仅使用日、月和年字段。
// Set the data validation for cell A1 to require a date on or before January 1, 2013. var cell = SpreadsheetApp.getActive().getRange('A1'); var rule = SpreadsheetApp.newDataValidation() .requireDateOnOrBefore(new Date('1/1/2013')).build(); cell.setDataValidation(rule);
参数
名称 | 类型 | 说明 |
---|---|---|
date | Date | 可接受的最晚日期。 |
弃踢回攻
DataValidationBuilder
- 此构建器,用于链接
requireFormulaSatisfied(formula)
将数据验证规则设置为要求指定公式的计算结果为 true
。
// Set the data validation for cell A1 to equal B1 with a custom formula. var cell = SpreadsheetApp.getActive().getRange('A1'); var rule = SpreadsheetApp.newDataValidation().requireFormulaSatisfied('=EQ(A1,B1)').build(); cell.setDataValidation(rule);
参数
名称 | 类型 | 说明 |
---|---|---|
formula | String | 在输入有效时计算结果为 true 的自定义公式。 |
弃踢回攻
DataValidationBuilder
- 此构建器,用于链接
requireNumberBetween(start, end)
将数据验证规则设置为要求提供介于两个指定数字之间或其中任一数字的数字。
// Set the data validation for cell A1 to require a number between 1 and 10. var cell = SpreadsheetApp.getActive().getRange('A1'); var rule = SpreadsheetApp.newDataValidation().requireNumberBetween(1, 10).build(); cell.setDataValidation(rule);
参数
名称 | 类型 | 说明 |
---|---|---|
start | Number | 可接受的最低值。 |
end | Number | 可接受的最高值。 |
弃踢回攻
DataValidationBuilder
- 此构建器,用于链接
requireNumberEqualTo(number)
将数据验证规则设置为要求数字等于指定值。
// Set the data validation for cell A1 to require a number equal to 3.1415926536. var cell = SpreadsheetApp.getActive().getRange('A1'); var rule = SpreadsheetApp.newDataValidation().requireNumberEqualTo(3.1415926536).build(); cell.setDataValidation(rule);
参数
名称 | 类型 | 说明 |
---|---|---|
number | Number | 唯一可接受的值。 |
弃踢回攻
DataValidationBuilder
- 此构建器,用于链接
requireNumberGreaterThan(number)
将数据验证规则设置为要求提供大于指定值的数字。
// Set the data validation for cell A1 to require a number greater than 0. var cell = SpreadsheetApp.getActive().getRange('A1'); var rule = SpreadsheetApp.newDataValidation().requireNumberGreaterThan(0).build(); cell.setDataValidation(rule);
参数
名称 | 类型 | 说明 |
---|---|---|
number | Number | 不可接受的最高值。 |
弃踢回攻
DataValidationBuilder
- 此构建器,用于链接
requireNumberGreaterThanOrEqualTo(number)
将数据验证规则设置为要求输入大于或等于指定值的数字。
// Set the data validation for cell A1 to require a number greater than or equal to 0. var cell = SpreadsheetApp.getActive().getRange('A1'); var rule = SpreadsheetApp.newDataValidation().requireNumberGreaterThanOrEqualTo(0).build(); cell.setDataValidation(rule);
参数
名称 | 类型 | 说明 |
---|---|---|
number | Number | 可接受的最低值。 |
弃踢回攻
DataValidationBuilder
- 此构建器,用于链接
requireNumberLessThan(number)
将数据验证规则设置为要求使用小于指定值的数字。
// Set the data validation for cell A1 to require a number less than 0. var cell = SpreadsheetApp.getActive().getRange('A1'); var rule = SpreadsheetApp.newDataValidation().requireNumberLessThan(0).build(); cell.setDataValidation(rule);
参数
名称 | 类型 | 说明 |
---|---|---|
number | Number | 不可接受的最低值。 |
弃踢回攻
DataValidationBuilder
- 此构建器,用于链接
requireNumberLessThanOrEqualTo(number)
将数据验证规则设置为要求数字小于或等于指定值。
// Set the data validation for cell A1 to require a number less than or equal to 0. var cell = SpreadsheetApp.getActive().getRange('A1'); var rule = SpreadsheetApp.newDataValidation().requireNumberLessThanOrEqualTo(0).build(); cell.setDataValidation(rule);
参数
名称 | 类型 | 说明 |
---|---|---|
number | Number | 可接受的最高值。 |
弃踢回攻
DataValidationBuilder
- 此构建器,用于链接
requireNumberNotBetween(start, end)
将数据验证规则设置为要求所指定的数字既不能介于两个指定数字之间,也不包含在两个指定数字之间。
// Set the data validation for cell A1 to require a number not between 1 and 10. var cell = SpreadsheetApp.getActive().getRange('A1'); var rule = SpreadsheetApp.newDataValidation().requireNumberNotBetween(1, 10).build(); cell.setDataValidation(rule);
参数
名称 | 类型 | 说明 |
---|---|---|
start | Number | 不可接受的最低值。 |
end | Number | 不可接受的最高值。 |
弃踢回攻
DataValidationBuilder
- 此构建器,用于链接
requireNumberNotEqualTo(number)
将数据验证规则设置为要求输入不等于指定值的数字。
// Set the data validation for cell A1 to require a number not equal to 0. var cell = SpreadsheetApp.getActive().getRange('A1'); var rule = SpreadsheetApp.newDataValidation().requireNumberNotEqualTo(0).build(); cell.setDataValidation(rule);
参数
名称 | 类型 | 说明 |
---|---|---|
number | Number | 唯一不接受的值。 |
弃踢回攻
DataValidationBuilder
- 此构建器,用于链接
requireTextContains(text)
将数据验证规则设置为要求输入值包含指定值。
// Set the data validation for cell A1 to require any value that includes "Google". var cell = SpreadsheetApp.getActive().getRange('A1'); var rule = SpreadsheetApp.newDataValidation().requireTextContains('Google').build(); cell.setDataValidation(rule);
参数
名称 | 类型 | 说明 |
---|---|---|
text | String | 输入必须包含的值。 |
弃踢回攻
DataValidationBuilder
- 此构建器,用于链接
requireTextDoesNotContain(text)
将数据验证规则设置为要求输入值不包含指定值。
// Set the data validation for cell A1 to require any value that does not include "@". var cell = SpreadsheetApp.getActive().getRange('A1'); var rule = SpreadsheetApp.newDataValidation().requireTextDoesNotContain('@').build(); cell.setDataValidation(rule);
参数
名称 | 类型 | 说明 |
---|---|---|
text | String | 输入内容不得包含的值。 |
弃踢回攻
DataValidationBuilder
- 此构建器,用于链接
requireTextEqualTo(text)
将数据验证规则设置为要求输入值等于指定值。
// Set the data validation for cell A1 to require "Yes". var cell = SpreadsheetApp.getActive().getRange('A1'); var rule = SpreadsheetApp.newDataValidation().requireTextEqualTo('Yes').build(); cell.setDataValidation(rule);
参数
名称 | 类型 | 说明 |
---|---|---|
text | String | 唯一可接受的值。 |
弃踢回攻
DataValidationBuilder
- 此构建器,用于链接
requireTextIsEmail()
设置数据验证规则,要求以电子邮件地址的形式输入内容。
// Set the data validation for cell A1 to require text in the form of an email address. var cell = SpreadsheetApp.getActive().getRange('A1'); var rule = SpreadsheetApp.newDataValidation().requireTextIsEmail().build(); cell.setDataValidation(rule);
弃踢回攻
DataValidationBuilder
- 此构建器,用于链接
requireTextIsUrl()
设置数据验证规则,要求输入内容采用网址形式。
// Set the data validation for cell A1 to require text in the form of a URL. var cell = SpreadsheetApp.getActive().getRange('A1'); var rule = SpreadsheetApp.newDataValidation().requireTextIsUrl().build(); cell.setDataValidation(rule);
弃踢回攻
DataValidationBuilder
- 此构建器,用于链接
requireValueInList(values)
将数据验证规则设置为要求输入值等于某个指定值。
// Set the data validation for cell A1 to require "Yes" or "No", with a dropdown menu. var cell = SpreadsheetApp.getActive().getRange('A1'); var rule = SpreadsheetApp.newDataValidation().requireValueInList(['Yes', 'No']).build(); cell.setDataValidation(rule);
参数
名称 | 类型 | 说明 |
---|---|---|
values | String[] | 一个由可接受值组成的数组。 |
弃踢回攻
DataValidationBuilder
- 此构建器,用于链接
requireValueInList(values, showDropdown)
将数据验证规则设置为要求输入值等于某个指定值,并提供隐藏下拉菜单的选项。
// Set the data validation for cell A1 to require "Yes" or "No", with no dropdown menu. var cell = SpreadsheetApp.getActive().getRange('A1'); var rule = SpreadsheetApp.newDataValidation().requireValueInList(['Yes', 'No'], false).build(); cell.setDataValidation(rule);
参数
名称 | 类型 | 说明 |
---|---|---|
values | String[] | 一个由可接受值组成的数组。 |
showDropdown | Boolean | 如果电子表格应显示值的下拉菜单,则为 true ;如果不应显示,则为 false 。 |
弃踢回攻
DataValidationBuilder
- 此构建器,用于链接
requireValueInRange(range)
将数据验证规则设置为要求输入值等于指定范围内的值。
// Set the data validation for cell A1 to require a value from B1:B10, with a dropdown menu. var cell = SpreadsheetApp.getActive().getRange('A1'); var range = SpreadsheetApp.getActive().getRange('B1:B10'); var rule = SpreadsheetApp.newDataValidation().requireValueInRange(range).build(); cell.setDataValidation(rule);
参数
名称 | 类型 | 说明 |
---|---|---|
range | Range | 包含可接受值的范围。 |
弃踢回攻
DataValidationBuilder
- 此构建器,用于链接
requireValueInRange(range, showDropdown)
将数据验证规则设置为要求输入值等于给定范围内的值,并提供隐藏下拉菜单的选项。
// Set the data validation for cell A1 to require value from B1:B10, with no dropdown menu. var cell = SpreadsheetApp.getActive().getRange('A1'); var range = SpreadsheetApp.getActive().getRange('B1:B10'); var rule = SpreadsheetApp.newDataValidation().requireValueInRange(range, false).build(); cell.setDataValidation(rule);
参数
名称 | 类型 | 说明 |
---|---|---|
range | Range | 包含可接受值的范围。 |
showDropdown | Boolean | 如果电子表格应显示值的下拉菜单,则为 true ;如果不应显示,则为 false 。 |
弃踢回攻
DataValidationBuilder
- 此构建器,用于链接
setAllowInvalid(allowInvalidData)
设置是在输入数据验证失败时显示警告,还是完全拒绝输入。新数据验证规则的默认值为 true
。
参数
名称 | 类型 | 说明 |
---|---|---|
allowInvalidData | Boolean | 如果规则应允许未通过数据验证的输入,则为 true ;如果不允许,则为 false 。 |
弃踢回攻
DataValidationBuilder
- 此构建器,用于链接
setHelpText(helpText)
设置当用户将鼠标悬停在已设置数据验证的单元格上时显示的帮助文本。
参数
名称 | 类型 | 说明 |
---|---|---|
helpText | String | 要设置的帮助文本。 |
弃踢回攻
DataValidationBuilder
- 此构建器,用于链接
withCriteria(criteria, args)
将数据验证规则设置为由 DataValidationCriteria
值定义的条件,通常取自现有规则的 criteria
和 arguments
。
// Change existing data validation rules that require a date in 2013 to require a date in 2014. var oldDates = [new Date('1/1/2013'), new Date('12/31/2013')]; var newDates = [new Date('1/1/2014'), new Date('12/31/2014')]; var sheet = SpreadsheetApp.getActiveSheet(); var range = sheet.getRange(1, 1, sheet.getMaxRows(), sheet.getMaxColumns()); var rules = range.getDataValidations(); for (var i = 0; i < rules.length; i++) { for (var j = 0; j < rules[i].length; j++) { var rule = rules[i][j]; if (rule != null) { var criteria = rule.getCriteriaType(); var args = rule.getCriteriaValues(); if (criteria == SpreadsheetApp.DataValidationCriteria.DATE_BETWEEN && args[0].getTime() == oldDates[0].getTime() && args[1].getTime() == oldDates[1].getTime()) { // Create a builder from the existing rule, then change the dates. rules[i][j] = rule.copy().withCriteria(criteria, newDates).build(); } } } } range.setDataValidations(rules);
参数
名称 | 类型 | 说明 |
---|---|---|
criteria | DataValidationCriteria | 数据验证条件的类型。 |
args | Object[] | 适合条件类型的参数数组;参数数量和类型与上述相应的 require...() 方法一致。 |
弃踢回攻
DataValidationBuilder
- 此构建器,用于链接