在Google Script中,如何在运行时从用户那里获得反馈?

时间:2015-10-29 03:59:31

标签: google-sheets

我试图在运行Google脚本期间获得用户反馈。我希望用户能够从名单中选择一个或多个学生,并从标准列表中选择一个或多个标准。

我尝试通过创建带框的html弹出屏幕来实现此目的。弹出窗口工作正常,但我无法访问弹出窗口的结果。

Sample

以下是我当前的脚本文件:

code.gs

// Use this code for Google Docs, Forms, or new Sheets.
function onOpen() {
  SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
      .createMenu('Dialog')
      .addItem('Open', 'doGet')
      .addToUi();
}

function doGet() {
  html = HtmlService
       .createTemplateFromFile('Index')
       .evaluate()
       .setSandboxMode(HtmlService.SandboxMode.IFRAME);


  SpreadsheetApp.getUi() // Or DocumentApp or FormApp.
      .showModalDialog(html, 'Dialog title');
}

function getStandards(){
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = spreadsheet.getActiveSheet();
  var dataRange = sheet.getRange(2,1,15,1);

  var data = dataRange.getValues();

  return data;

}

function getStudents(){
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = spreadsheet.getActiveSheet();
  var dataRange = sheet.getRange(2,2,15,1);

  var data = dataRange.getValues();

  return data;

}

的index.html

<!DOCTYPE html>
<html>
  <head>
    <base target="_top">
  </head>
  <body>

Standards?   Students?
<br>
<select size="15"   name="standards" multiple>
    <? var data = getStandards();
      for (var i = 0; i < data.length; i++) { ?>
        <option><?= data[i] ?>
    <? } ?> 
</select>

<select size="15"   name="students" multiple>

    <? var data = getStudents();
      for (var i = 0; i < data.length; i++) { ?>
        <option><?= data[i] ?>
    <? } ?>
</select>

    <input type="button" value="Close"
        onclick="google.script.host.close()" />


</body>
</html>

Image of form

这是显示的表单,但是当我点击关闭按钮时,我需要获取标准列表和学生列表,这样我就可以在电子表格中创建一堆新行。

目标结果是添加9个新行。每个学生/标准对一个。然后我可以为每个人添加分数。

谢谢!

1 个答案:

答案 0 :(得分:0)

我不是故意听起来很奇怪,但为什么不使用Google表单?它会自动将所有条目放入Google表格。