数据验证规则的构建器。
// Set the data validation for cell A1 to require a value from B1:B10. const cell = SpreadsheetApp.getActive().getRange('A1'); const range = SpreadsheetApp.getActive().getRange('B1:B10'); const 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. const oldDates = [new Date('1/1/2013'), new Date('12/31/2013')]; const newDates = [new Date('1/1/2014'), new Date('12/31/2014')]; const sheet = SpreadsheetApp.getActiveSheet(); const range = sheet.getRange(1, 1, sheet.getMaxRows(), sheet.getMaxColumns()); const rules = range.getDataValidations(); for (let i = 0; i < rules.length; i++) { for (let j = 0; j < rules[i].length; j++) { const rule = rules[i][j]; if (rule != null) { const criteria = rule.getCriteriaType(); const 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. const cell = SpreadsheetApp.getActive().getRange('A1'); const rule = cell.getDataValidation(); if (rule != null) { const criteria = rule.getCriteriaType(); const 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. const cell = SpreadsheetApp.getActive().getRange('A1'); const rule = cell.getDataValidation(); if (rule != null) { const criteria = rule.getCriteriaType(); const 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. const cell = SpreadsheetApp.getActive().getRange('A1'); const 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. const cell = SpreadsheetApp.getActive().getRange('A1'); const rule = SpreadsheetApp.newDataValidation().requireCheckbox('APPROVED').build(); cell.setDataValidation(rule);
参数
| 名称 | 类型 | 说明 |
|---|---|---|
checked | 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. const cell = SpreadsheetApp.getActive().getRange('A1'); const rule = SpreadsheetApp.newDataValidation() .requireCheckbox('APPROVED', 'PENDING') .build(); cell.setDataValidation(rule);
参数
| 名称 | 类型 | 说明 |
|---|---|---|
checked | Object | 分配给已勾选复选框的值。 |
unchecked | Object | 分配给未勾选的复选框的值。 |
返回
DataValidationBuilder - 此构建器,用于链式调用
requireDate()
将数据验证规则设置为要求输入日期。
// Set the data validation for cell A1 to require a date. const cell = SpreadsheetApp.getActive().getRange('A1'); const 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. const cell = SpreadsheetApp.getActive().getRange('A1'); const 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. const cell = SpreadsheetApp.getActive().getRange('A1'); const 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. const cell = SpreadsheetApp.getActive().getRange('A1'); const 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. const cell = SpreadsheetApp.getActive().getRange('A1'); const 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. const cell = SpreadsheetApp.getActive().getRange('A1'); const 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. const cell = SpreadsheetApp.getActive().getRange('A1'); const 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. const cell = SpreadsheetApp.getActive().getRange('A1'); const 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. const cell = SpreadsheetApp.getActive().getRange('A1'); const 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. const cell = SpreadsheetApp.getActive().getRange('A1'); const 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. const cell = SpreadsheetApp.getActive().getRange('A1'); const rule = SpreadsheetApp.newDataValidation().requireNumberEqualTo(Math.PI).build(); cell.setDataValidation(rule);
参数
| 名称 | 类型 | 说明 |
|---|---|---|
number | Number | 唯一可接受的值。 |
返回
DataValidationBuilder - 此构建器,用于链式调用
requireNumberGreaterThan(number)
将数据验证规则设置为要求输入大于指定值的数字。
// Set the data validation for cell A1 to require a number greater than 0. const cell = SpreadsheetApp.getActive().getRange('A1'); const 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. const cell = SpreadsheetApp.getActive().getRange('A1'); const 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. const cell = SpreadsheetApp.getActive().getRange('A1'); const 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. const cell = SpreadsheetApp.getActive().getRange('A1'); const 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. const cell = SpreadsheetApp.getActive().getRange('A1'); const 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. const cell = SpreadsheetApp.getActive().getRange('A1'); const 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". const cell = SpreadsheetApp.getActive().getRange('A1'); const 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 "@". const cell = SpreadsheetApp.getActive().getRange('A1'); const rule = SpreadsheetApp.newDataValidation().requireTextDoesNotContain('@').build(); cell.setDataValidation(rule);
参数
| 名称 | 类型 | 说明 |
|---|---|---|
text | String | 输入不得包含的值。 |
返回
DataValidationBuilder - 此构建器,用于链式调用
requireTextEqualTo(text)
设置数据验证规则,要求输入等于指定值。
// Set the data validation for cell A1 to require "Yes". const cell = SpreadsheetApp.getActive().getRange('A1'); const 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. const cell = SpreadsheetApp.getActive().getRange('A1'); const 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. const cell = SpreadsheetApp.getActive().getRange('A1'); const 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. const cell = SpreadsheetApp.getActive().getRange('A1'); const 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. const cell = SpreadsheetApp.getActive().getRange('A1'); const rule = SpreadsheetApp.newDataValidation() .requireValueInList(['Yes', 'No'], false) .build(); cell.setDataValidation(rule);
参数
| 名称 | 类型 | 说明 |
|---|---|---|
values | String[] | 可接受的值的数组。 |
show | Boolean | 如果电子表格应显示值的下拉菜单,则为 true;否则为 false。 |
返回
DataValidationBuilder - 此构建器,用于链式调用
requireValueInRange(range)
设置数据验证规则,要求输入的值等于指定范围内的某个值。
// Set the data validation for cell A1 to require a value from B1:B10, with a // dropdown menu. const cell = SpreadsheetApp.getActive().getRange('A1'); const range = SpreadsheetApp.getActive().getRange('B1:B10'); const 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. const cell = SpreadsheetApp.getActive().getRange('A1'); const range = SpreadsheetApp.getActive().getRange('B1:B10'); const rule = SpreadsheetApp.newDataValidation() .requireValueInRange(range, false) .build(); cell.setDataValidation(rule);
参数
| 名称 | 类型 | 说明 |
|---|---|---|
range | Range | 包含可接受值的范围。 |
show | Boolean | 如果电子表格应显示值的下拉菜单,则为 true;否则为 false。 |
返回
DataValidationBuilder - 此构建器,用于链式调用
setAllowInvalid(allowInvalidData)
设置在输入数据验证失败时是显示警告,还是完全拒绝输入。新数据验证规则的默认值为 true。
参数
| 名称 | 类型 | 说明 |
|---|---|---|
allow | Boolean | 如果规则应允许输入未通过数据验证的内容,则为 true;否则为 false。 |
返回
DataValidationBuilder - 此构建器,用于链式调用
setHelpText(helpText)
设置当用户将光标悬停在设置了数据验证的单元格上时显示的帮助文本。
参数
| 名称 | 类型 | 说明 |
|---|---|---|
help | 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. const oldDates = [new Date('1/1/2013'), new Date('12/31/2013')]; const newDates = [new Date('1/1/2014'), new Date('12/31/2014')]; const sheet = SpreadsheetApp.getActiveSheet(); const range = sheet.getRange(1, 1, sheet.getMaxRows(), sheet.getMaxColumns()); const rules = range.getDataValidations(); for (let i = 0; i < rules.length; i++) { for (let j = 0; j < rules[i].length; j++) { const rule = rules[i][j]; if (rule != null) { const criteria = rule.getCriteriaType(); const 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 | Data | 数据验证条件的类型。 |
args | Object[] | 与条件类型相对应的实参数组;实参的数量及其类型与上述相应的 require...() 方法相匹配。 |
返回
DataValidationBuilder - 此构建器,用于链式调用