使用Google Apps脚本从HTML页面上的JSON数据创建下拉列表

时间:2019-03-26 18:31:28

标签: javascript google-apps-script

我正在尝试根据从Google表格接收到的JSON数据创建一个下拉列表。我有将数据从Google表格获取到JSON的代码。我无法创建下拉菜单。我要用于创建图形的下拉菜单。这是将工作表数据转换为json的代码。

    function doGet(e){

     // Change Spread Sheet url
     var ss = SpreadsheetApp.openByUrl("URL to the Sheet");

    // Sheet Name.
     var sheet = ss.getSheetByName("waiverstatus");

     return getUsers(sheet); 
    }


    function getUsers(sheet){
      var jo = {};
      var dataArray = [];

    // collecting data from 2nd Row , 1st column to last row and last column
      var rows = sheet.getRange(2,1,sheet.getLastRow()-1,                   sheet.getLastColumn()).getValues();

      for(var i = 0, l= rows.length; i<l ; i++){
        var dataRow = rows[i];
        var record = {};
        record['Students'] = dataRow[0];
        record['Method'] = dataRow[1];
        record['Satisfactory_C1'] = dataRow[2];
        record['Developing_C1'] = dataRow[3];
        record['Unsatisfactory_C1'] = dataRow[4];
        record['Satisfactory_C2'] = dataRow[5];
        record['Developing_C2'] = dataRow[6];
        record['Unsatisfactory_C2'] = dataRow[7];


        dataArray.push(record);

      }  

      jo.user = dataArray;

      var result = JSON.stringify(jo);

      return         ContentService.createTextOutput(result).setMimeType(ContentService.MimeType.JSON);

    }

1 个答案:

答案 0 :(得分:1)

以下是从电子表格进行下拉的示例。

Code.gs

function test() {
  try {
    var html = HtmlService.createTemplateFromFile("HTML_GetJo").evaluate();
    SpreadsheetApp.getUi().showModalDialog(html, "Jo");
  }
  catch(err) {
    Logger.log(err);
  }
}

function get_jo() {
  try {
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
    var rows = sheet.getRange(2,1,sheet.getLastRow()-1,sheet.getLastColumn()).getValues();
    var jo = {};
    var dataArray = [];
    for( var i=0; i<rows.length; i++ ) {
      var record = {};
      record['Students'] = rows[i][0];
      record['Method'] = rows[i][1];
      record['Satisfactory_C1'] = rows[i][2];
      record['Developing_C1'] = rows[i][3];
      record['Unsatisfactory_C1'] = rows[i][4];
      record['Satisfactory_C2'] = rows[i][5];
      record['Developing_C2'] = rows[i][6];
      record['Unsatisfactory_C2'] = rows[i][7];
      dataArray.push(record);
    }
    jo.user = dataArray;
    var result = JSON.stringify(jo);
    return result;
  }
  catch(err) {
    Logger.log(err);
  }
}

HTML_GetJo.html

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>
    <select id="myjo">
    </select>
    <script>
      (function () {
        google.script.run.withSuccessHandler(
          function(value) {
            var jo = JSON.parse(value);
            var select = document.getElementById("myjo");
            for( var i=0; i<jo.user.length; i++ ) {
              var user = jo.user[i];
              var option = document.createElement("option");
              option.text = user.Students;
              select.add(option);
            }
          }
        ).get_jo();
      }());
    </script>
  </body>
</html>