首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从google电子表格的列中填充HTML下拉菜单

问从google电子表格的列中填充HTML下拉菜单
EN

Stack Overflow用户
提问于 2019-01-16 12:23:47
回答 1查看 5.5K关注 0票数 2

我是.gs的新手,所以这应该不难。

我有一个Google电子表格,其中有一个列中的值(比如A列)。我使用.gs创建了一个自定义菜单,用户将在其中选择一个选项。

单击其中一个选项(新组件),弹出窗口将显示一个下拉菜单,用户可以在其中选择值。

CustomMenu.gs

代码语言:javascript
复制
 function onOpen() {
 var ui = SpreadsheetApp.getUi();
 // Or DocumentApp or FormApp.
 ui.createMenu('bq Library Menu')
  .addItem('Add new component', 'newComponent')
  .addSeparator()
  .addSubMenu(ui.createMenu('Modify existing component')
      .addItem('Remove component', 'removeComponent'))
  .addToUi();
 }

 function newComponent() {

 var html = HtmlService.createHtmlOutputFromFile('NewComponentForm')
     .setWidth(400)
     .setHeight(300);
 SpreadsheetApp.getUi() // Or DocumentApp or SlidesApp or FormApp.
     .showModalDialog(html, 'New Component Form');
 }

NewComponentForm.html

代码语言:javascript
复制
<!DOCTYPE html>
<html>
<head>
<base target="_top">
</head>
<body>
  <h2>Clickable Dropdown</h2>
  <p>Select manufacturer from the list</p>

  <div class="dropdown">
     <button onclick="loadManufacturers()" class="dropbtn">Dropdown</button>
     <div id="myDropdown" class="dropdown-content"></div>
  </div>

</body>

​

我希望下拉菜单显示电子表格中A列中的所有元素。我尝试了几种选择,但没有得到所需的结果。

那么,如何继续执行下拉填充过程呢?

EN

回答 1

Stack Overflow用户

发布于 2019-01-16 23:11:19

  • 您希望创建一个复选框,并将电子表格的"A“列中的值放入其中。
  • 选中复选框中的值时,要检索该值。

如果我的理解是正确的,这次修改怎么样?我认为你的处境有几个答案,所以请把这看作是其中之一。

此修改脚本的流程如下所示。

  1. 打开一个对话框。
  2. 点击“下拉”按钮。
  3. 通过google.script.run,在Google脚本端运行getValuesFromSpreadsheet()功能。
  4. 在getValuesFromSpreadsheet(),从电子表格中检索值并返回到Javascript。
  5. 在withSuccessHandler(),检索返回的值。使用这些值,将创建一个复选框。
  6. 当选中复选框的值时,将运行selected()并检索所选值。

当反映上述流时,修改后的脚本如下所示。

气体:

请将以下Google脚本添加到CustomMenu.gs中。

代码语言:javascript
复制
function getValuesFromSpreadsheet() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
  return sheet.getRange(1, 1, sheet.getLastRow(), 1).getValues(); // Retrieve values and send to Javascript
}
  • 在此示例脚本中,从活动电子表格的"Sheet1“中检索值。这些值在"A“列中。
    • 如果您想从其他范围和工作表中检索,请修改此选项。

​

HTML:

请将以下Javascript添加到NewComponentForm.html。

代码语言:javascript
复制
<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脚本中检索值。
  • 单击“下拉”按钮时,将创建一个复选框。
  • 所选的值可以在控制台上看到。

注意:

  • 这是一个简单的示例脚本。所以请根据你的情况修改它。

参考文献:

如果我误解了你的问题,我很抱歉。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54217028

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档