如何获取数据验证列表选项数组?

时间:2019-04-02 23:22:38

标签: validation google-apps-script google-sheets

我正在构建一个HTML模板来自动执行Google表格。如何获取显示在数据验证列表中的值的数组?

我尝试了DataValidation的所有方法...但是我只能得到[Range, true]数组。有什么方法列出所有有效的选项,例如[option_1, option_2, option_3]

function getOptions() {
  var ss = SpreadsheetApp.openById('1ubMapaDrrOySpreadSheetIDjBEvHxphA83rzs')
  var sheet = ss.getSheetByName("sheet_name");
  var dv = sheet.getRange(2, 19).getDataValidation()
  var myTarget = dv.getCriteriaValues();
  Logger.log(myTarget)
}

我希望有一个选项数组:[option1, option2, option3, etc..],但是我得到了一个包含两个元素的数组:[range, true]

2 个答案:

答案 0 :(得分:0)

我正在研究另一个问题,寻找适用于特定数据验证范围的规则。 This is a link to that answer。就我而言,我在代码的这一部分找到了: var args=rule.getCriteriaValues(); if(args[0].getA1Notation()==org.getA1Notation()) {

args [0]实际上是范围对象。希望对您有所帮助。

答案 1 :(得分:0)

我找到了具有库珀技巧的解决方案,因此我可以自己输入。 我要做的就是从方法getCriteriaValues()返回的数组的第一个参数中获取值。编辑器没有提示getValues命令,但是当我手动输入它时,得到了预期的数组。

function getOptions() {
  var ss = SpreadsheetApp.openById('1ubMapaDrrOySpreadSheetIDjBEvHxphA83rzs')
  var sheet = ss.getSheetByName("sheet_name");
  var dv = sheet.getRange(2, 19).getDataValidation();
  var critVal = dv.getCriteriaValues();
  var myTarget = critVal[0].getValues();
  Logger.log(myTarget)
}

还有薄纱:)。