我正在为学生建立一个表格,我希望自动输入他们的电子邮件地址,我不确定如何做到这一点。我想出了以下内容,但我对此非常陌生,可能会离开。我不确定如何实现它,我得到一个空响应。我是否需要一个表示电子邮件的表单问题?如何以隐藏的方式记录用户的电子邮件?
function formEnterEmail(e) {
var userEmail = Session.getActiveUser().getEmail();
var sheet = SpreadsheetApp.getActiveSheet();
var lastRow = sheet.getLastRow();
// Set the status of the new ticket to 'New'.
// Column F is the Status column
sheet.getRange(lastRow, getColIndexByName("Email")).setValue(userEmail);
function getColIndexByName(colName) {
var sheet = SpreadsheetApp.getActiveSheet();
var numColumns = sheet.getLastColumn();
var row = sheet.getRange(1, 1, 1, numColumns).getValues();
for (i in row[0]) {
var name = row[0][i];
if (name == colName) {
return parseInt(i) + 1;
}
}
return -1;
}
}
答案 0 :(得分:0)
如果您要构建一个表单,您将通过电子邮件发送给学生,那么当您设置表单时,您可以让它为您记录所有电子邮件地址,而无需编写任何脚本。
这是开始编写新表单的好方法...转到此页面: http://www.google.com/drive/apps.html?usp=ad_search
然后向下滚动到“表单”部分,然后单击“创建”。
这将引导您完成设置表单所需的所有内容,并将结果与学生的电子邮件地址一起放入电子表格中。您可以将生成的电子表格保密,这样您就是唯一可以查看所有响应的人。
我希望有所帮助。
答案 1 :(得分:0)
只有您使用的是Google Apps for Business或Google Apps for Education,才能在Google表单中收集用户的电子邮件地址,然后才能使用您域中的用户。如果您不符合这些要求,那么您唯一的选择是请求用户填写信息,或通过电子邮件将URL发送到预填表格。
这并非真正“隐藏”,因为实时表单会报告正在收集用户ID。
如果您是从脚本创建表单,则可以使用Form.setCollectEmail(true)控制电子邮件收集功能。但是,您也可以在不使用任何代码的情况下进行设置。
在表单编辑器中,查找“表单设置”。它们应该出现在所有问题之上。设置需要域登录和用户名收集的复选框。
收集回复的电子表格会自动包含“用户名”列: