使用Google表格中的数据填充html下拉框(<select>)

时间:2019-02-18 16:07:03

标签: html google-apps-script

我已经使用托管在我的Google驱动器中的Google创建了该网站https://sites.google.com/view/cryptocurrencyman/home 现在,在“加密货币图表”页面上,我需要一个下拉框,其中包含来自Google表格的所有可用加密货币,该页面可在“加密货币数据”页面上找到,以便访问者可以选择他们想要绘制历史价格的加密货币。 我通过运行以下google app脚本函数来获取该Google工作表中第1列中所有加密货币的名称。这是我想要的下拉框中的数据。 函数Get() {   var sheet = SpreadsheetApp.openById(“ ...........”)。getSheetByName('Sheet1');   var lastRow = sheet.getLastRow();   var myRange = sheet.getRange(“ A2:A” + lastRow);   var data = myRange.getValues();   Logger.log(“ Data =” + data);   返回数据;  }; 这是一个简单下拉框的html代码。 <!DOCTYPE html>     <表格>         选择y的值:&nbsp;                    这是问题开始的地方。如何创建带有特定数据的Google表格中column1中所有可用加密货币的HTML下拉框?我不想手动将所有名称输入到上面的html表中。

2 个答案:

答案 0 :(得分:0)

确定要执行此操作吗?这是简单的部分。

HTML_Test:

<!DOCTYPE html>
  <html>
    <head>
    <base target="_top">
  </head>
  <body>
    <select id="mySelectList">
    </select>
    <script>
      (function () {
        google.script.run.withSuccessHandler(
          function (selectList) {
            var select = document.getElementById("mySelectList");
            for( var i=0; i<selectList.length; i++ ) {
              var option = document.createElement("option");
              option.text = selectList[i][0];
              select.add(option);
            }
          }
        ).getSelectList();
      }());
    </script>
  </body>
</html>

Codes.gs

function getSelectList() {
  try {
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
    var values = sheet.getRange(1,1,sheet.getLastRow(),1).getValues();
    return values;
  }
  catch(err) {
    Logger.log(err);
  }
}

答案 1 :(得分:0)

这些是我可以使用的两个Google工作表函数以及上面的HTML代码:

function getSelectList() 
         {
          var sheet = SpreadsheetApp.openById(".....").getSheetByName('Sheet1');
          var lastRow = sheet.getLastRow();
          var myRange = sheet.getRange("A2:A" + lastRow);
          var data = myRange.getValues();
          Logger.log("Data = " + data); 
          return data;
         };


         function doGet() 
         {
         return HtmlService.createHtmlOutputFromFile('HTML_Test');
         }