Как получить скриптом значения из выпадающего списка

Недавно мне попалась таблица-опросник, в которой было достаточно много выпадающих списков с различными вариантами ответа.

Так как опросник был достаточно внушительным по количеству вопросов и их вариантов ответа, я решил сделать проще — к каждому списку получить возможные ответы, посмотреть на них и выбрать нужный.

На примере ниже, я покажу, как получать такие списки скриптом.

Допустим, есть следующий список:

list список в таблице

Если просто обратиться к ячейке A7, которая содержит список через getValue() или getValues(), то результат будет следующий: '' — пустота, потому что в самой ячейке не содержится ничего.

Для получения данных из списка в гугл скриптах есть класс DataValidation. И вот как можно получить этот список скриптом:

function getList() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const ws = ss.getSheetByName('Users');
  const listValue = ws.getRange('A7').getDataValidation().getCriteriaValues()

  console.log(listValue)

}

В результате консоль лог отобразит следующее:

console log with values of list

Немного меняю код на получение первого элемента в массиве и вывожу их всех отдельно:


function getList() {
  const ss = SpreadsheetApp.getActiveSpreadsheet();
  const ws = ss.getSheetByName('Users');
  const listValue = ws.getRange('A7').getDataValidation().getCriteriaValues()[0]

  console.log(listValue)

  listValue.forEach(element => console.log(element))

}

получая на выходе:

Вот и всё, ничего сложного. Если таких списков на листе несколько (или сколько угодно) — просто прохожусь по всем и каждый список завешиваю в объект, как значение (массив) для нового ключа.

У этой записи один комментарий

  1. Александр

    Как получать выбранное значение из списков? Т. е. на событие изменение значение списка инициировать функцию с выводом выбранного значения.

Добавить комментарий