Как получить массив параметров списка проверки данных? - PullRequest
0 голосов
/ 03 апреля 2019

Я создаю HTML-шаблон для автоматизации Google Sheets.Как я могу получить массив значений, который появляется в списке проверки данных?

Я перепробовал все методы из 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 голосов
/ 04 апреля 2019

Я нашел решение с помощью подсказки Купера, чтобы я мог ввести его сам. Все, что мне нужно было сделать, это получить значения из первого аргумента массива, возвращенного методом 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)
}

И вуаль:).

0 голосов
/ 03 апреля 2019

Я работал над другой проблемой, пытаясь найти правило, применимое к определенному диапазону проверки данных. Это ссылка на этот ответ . В моем случае я нашел в этой области кода: var args=rule.getCriteriaValues(); if(args[0].getA1Notation()==org.getA1Notation()) {

То, что args [0] оказал влияние на объект диапазона. Я надеюсь, что это может помочь вам.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...