google-apps-script - 如何在 Google App 脚本中创建下拉提示

标签 google-apps-script google-sheets

我想要一个包含工作簿中所有可用工作表的用户界面对话框,让用户选择他们想要操作的工作表并将值返回到脚本进行处理。

我将工作表名称收集到一个数组中,并希望将它们显示在下拉列表框中以供选择。有人可以向我指出如何执行此操作的文档吗?

最佳答案

以下是绑定(bind)到电子表格的脚本示例。对于网络应用程序来说,情况类似。

在Code.gs中

function test() {
  try {
    var output = HtmlService.createHtmlOutputFromFile('HTML_Sidebar');
    SpreadsheetApp.getUi().showSidebar(output);
  }
  catch(err) {
    Logger.log(err);
  }
}

function getSheets() {
  try {
    var sheets = SpreadsheetApp.getActiveSpreadsheet().getSheets();
    var names = [];
    for( var i=0; i<sheets.length; i++ ) {
      names.push(sheets[i].getName());
    }
    return names;
  }
  catch(err) {
    Logger.log(err);
  }
}

function changeSheet(name) {
  try {
    var spread = SpreadsheetApp.getActiveSpreadsheet();
    var sheet = spread.getSheetByName(name);
    SpreadsheetApp.getActiveSpreadsheet().setActiveSheet(sheet);
  }
  catch(err) {
    Logger.log(err);
  }
}

在 HTML_Sidebar 中

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
    <select id="mySelect" onchange="selectChange(this)">
    </select>
    <script>
      function selectChange(select) {
        google.script.run.changeSheet(select.value);
      }
      function sheetNames(names) {
        var select = document.getElementById("mySelect");
        for( var i=0; i<names.length; i++ ) {
          var option = document.createElement("option");
          option.text = names[i];
          select.add(option);
        }
      }
      (function () { google.script.run.withSuccessHandler(sheetNames).getSheets(); }());
    </script>
  </body>
</html>

关于google-apps-script - 如何在 Google App 脚本中创建下拉提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52981008/

相关文章:

javascript - 如果包含字符串则删除表

javascript - Google Docs 电子表格到 JSON

javascript - 如何将行添加到第一个空行?带有 Chrome 扩展的 Google 电子表格 API

google-apps-script - Google Apps Script - 部署为 Webapp - 每次都是新版本?

google-apps-script - 错误的日期谷歌电子表格

javascript - 如何使用脚本在 Google 表格中获取下一个未过滤的行号(从当前行向下一位)?

python - 如何在 Google 表格和 Mysql 数据库之间同步数据?

google-sheets - 如何使谷歌表格和公式在每一行自动重复

javascript - 谷歌应用程序脚本中的 ReferenceError : "Drive" is not defined.(第 16 行,文件 "Code")

javascript - Google Apps 脚本日历服务 : How to avoid exceeding maximum execution time?