【发布时间】:2015-10-29 03:59:30
【问题描述】:
我试图在 Google 脚本运行期间获得用户反馈。我希望用户能够从姓名列表中选择一个或多个学生,并从标准列表中选择一个或多个标准。
我试图通过创建一个带有框的 html 弹出屏幕来做到这一点。弹出窗口工作正常,但我无法访问弹出窗口的结果。
这是我当前的脚本文件:
代码.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