【问题标题】:In Google Script how can I get feedback from the user during runtime?在 Google Script 中,如何在运行时从用户那里获得反馈?
【发布时间】:2015-10-29 03:59:30
【问题描述】:

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

我试图通过创建一个带有框的 html 弹出屏幕来做到这一点。弹出窗口工作正常,但我无法访问弹出窗口的结果。

Sample

这是我当前的脚本文件:

代码.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>

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

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

谢谢!

【问题讨论】:

    标签: google-apps-script google-sheets web-applications


    【解决方案1】:

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

    【讨论】:

    • 这只是较大电子表格的一小部分。基本上我正在尝试将数据添加到电子表格中。此表单将允许我一次添加一堆行,而不是一次添加一个。
    【解决方案2】:

    .close() 发生之前的某个时刻,您需要添加以下内容:

    <input type="button" value="Close"
      onclick="
        google.script.run.storeInput
        (
          [
            document.getElementById("#standards").value,
            document.getElementById("#students").value
          ]
        )
       google.script.host.close()" />
    

    向两个选择添加 ID 属性并在 .gs 中创建 function storeInput(arr)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-01-10
      • 1970-01-01
      • 1970-01-01
      • 2012-07-03
      相关资源
      最近更新 更多