【问题标题】:How to create a dropdown prompt in Google App Script如何在 Google App Script 中创建下拉提示
【发布时间】:2018-10-25 03:41:28
【问题描述】:

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

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

【问题讨论】:

标签: google-apps-script google-sheets


【解决方案1】:

这是一个绑定到电子表格的脚本示例。对于 Web 应用程序,情况类似。

在 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>

【讨论】:

  • 这是完美的,因为它为我提供了我需要的结构。非常感谢!!
猜你喜欢
  • 1970-01-01
  • 2017-01-28
  • 1970-01-01
  • 1970-01-01
  • 2015-08-09
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多