資料驗證規則的建構工具。
// 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);
Return 鍵
DataValidationBuilder
:依據這項規則的設定建構工具
getAllowInvalid()
如果輸入失敗的資料驗證規則顯示警告訊息,則傳回 true
;如果輸入內容完全拒絕,則傳回 false
。新資料驗證規則的預設值為 true
。
Return 鍵
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.') }
Return 鍵
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.') }
Return 鍵
Object[]
:與規則條件類型相符的引數陣列;引數數量及其類型與 DataValidationBuilder
類別對應的 require...()
方法相符
getHelpText()
取得規則說明文字,如果未設定說明文字,則為 null
。
Return 鍵
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);
Return 鍵
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 | 指派給核取方塊的核取方塊。 |
Return 鍵
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 | 指派給未勾選方塊的值。 |
Return 鍵
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);
Return 鍵
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 | 最近不接受的日期, |
Return 鍵
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 | 最早不接受的日期。 |
Return 鍵
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 | 最新的可接受的日期。 |
Return 鍵
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 | 唯一接受的日期。 |
Return 鍵
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 | 最近不接受的日期, |
Return 鍵
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 | 最早接受的日期。 |
Return 鍵
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 | 最新的可接受的日期。 |
Return 鍵
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 的自訂公式。 |
Return 鍵
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 | 可接受的最高值。 |
Return 鍵
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 | 唯一可接受的值。 |
Return 鍵
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 | 可接受的最高值。 |
Return 鍵
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 | 可接受的最低值。 |
Return 鍵
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 | 可接受的最低值。 |
Return 鍵
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 | 可接受的最高值。 |
Return 鍵
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 | 可接受的最高值。 |
Return 鍵
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 | 唯一的無法接受值。 |
Return 鍵
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 | 輸入內容必須包含的值。 |
Return 鍵
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 | 輸入內容不得包含的值。 |
Return 鍵
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 | 唯一可接受的值。 |
Return 鍵
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);
Return 鍵
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);
Return 鍵
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[] | 可接受的值陣列。 |
Return 鍵
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 。 |
Return 鍵
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 | 包含可接受的值的範圍。 |
Return 鍵
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 。 |
Return 鍵
DataValidationBuilder
:這個用於鏈結的建構工具
setAllowInvalid(allowInvalidData)
設定在輸入失敗資料驗證時顯示是否要顯示警告訊息,或完全拒絕輸入內容。新資料驗證規則的預設值為 true
。
參數
名稱 | 類型 | 說明 |
---|---|---|
allowInvalidData | Boolean | 如果規則應接受失敗資料驗證的輸入,則為 true ;否則為 false 。 |
Return 鍵
DataValidationBuilder
:這個用於鏈結的建構工具
setHelpText(helpText)
設定在使用者將滑鼠遊標懸停在設定驗證資料的儲存格上時顯示的說明文字。
參數
名稱 | 類型 | 說明 |
---|---|---|
helpText | String | 要設定的說明文字。 |
Return 鍵
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...() 方法相符。 |
Return 鍵
DataValidationBuilder
:這個用於鏈結的建構工具