Заполните раскрывающееся меню HTML из столбца в электронной таблице Google

Мне кажется, что самый простой способ сделать это -

import datetime

epoch = datetime.datetime.utcfromtimestamp(0)

def unix_time_millis(dt):
    return (dt - epoch).total_seconds() * 1000.0
0
задан Tanaike 16 January 2019 в 23:10
поделиться

1 ответ

  • Вы хотите создать поле выбора и поместить значения из столбца «A» электронной таблицы.
  • Когда выбрано значение из поля выбора, вы хотите получить его.

Если мое понимание верно, как насчет этой модификации? Я думаю, что есть несколько ответов для вашей ситуации, поэтому, пожалуйста, подумайте об этом как об одном из них.

Процесс этого модифицированного сценария выглядит следующим образом.

  1. Открыть диалоговое окно.
  2. Нажмите кнопку «Выпадающий».
  3. С помощью google.script.run запустите функцию getValuesFromSpreadsheet() на стороне скрипта Google Apps.
  4. На getValuesFromSpreadsheet() значения извлекаются из электронной таблицы и возвращаются в Javascript.
  5. На withSuccessHandler() возвращенные значения извлекаются. Используя значения, создается поле выбора.
  6. Когда выбрано значение в поле выбора, запускается selected() и извлекается выбранное значение.

Когда вышеуказанный поток отражается, модифицированный скрипт выглядит следующим образом.

GAS:

Добавьте следующий скрипт Google Apps в CustomMenu.gs.

function getValuesFromSpreadsheet() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
  return sheet.getRange(1, 1, sheet.getLastRow(), 1).getValues(); // Retrieve values and send to Javascript
}
  • В этом примере сценария значения извлекаются из «Лист1» активной электронной таблицы. Значения находятся в столбце «А».
    • Если вы хотите получить данные из другого диапазона и листа, пожалуйста, измените это.

HTML:

Пожалуйста, добавьте следующий Javascript в NewComponentForm.html.

<script>
  function loadManufacturers() {
    google.script.run.withSuccessHandler(function(ar) {
      let select = document.createElement("select");
      select.id = "select1";
      select.setAttribute("onchange", "selected()");
      document.getElementById("myDropdown").appendChild(select);
      ar.forEach(function(e, i) {
        let option = document.createElement("option");
        option.value = i;
        option.text = e;
        document.getElementById("select1").appendChild(option);
      });
    }).getValuesFromSpreadsheet();
  };

  function selected() {
    const value = document.getElementById("select1").value;
    console.log(value);
  }
</script>
  • Используйте google.script.run для извлечения значений из электронной таблицы.
  • Используя withSuccessHandler, получите значения из Google Apps Script.
  • При нажатии кнопки «Раскрывающийся список» создается поле выбора.
  • Выбранное значение можно увидеть на консоли.

Примечание:

  • Это простой пример сценария. Поэтому, пожалуйста, измените его для вашей ситуации.

Ссылки:

Если я неправильно понял ваш вопрос, извините.

0
ответ дан Tanaike 16 January 2019 в 23:10
поделиться
Другие вопросы по тегам:

Похожие вопросы: