0

我正在建立一个表格供学生输入,我想自动输入他们的电子邮件地址,但我不确定如何执行此操作。我想出了以下内容,但我对此很陌生,可能还很遥远。我不确定如何实现它并且我得到一个空响应。我需要一个表格问题,上面写着 email 吗?如何以隐藏的方式记录用户的电子邮件?

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;
}
}
4

2 回答 2

0

如果您正在构建一个将通过电子邮件发送给学生的表单,那么当您设置表单时,您可以让它为您记录他们的所有电子邮件地址,而无需编写任何脚本。

这是开始编写新表单的好方法...转到此页面: http ://www.google.com/drive/apps.html?usp=ad_search

并向下滚动到“表单”部分,然后单击“创建”。

这应该会引导您完成设置表单所需的一切,结果将与学生的电子邮件地址一起放入电子表格中。您可以将生成的电子表格保密,这样您将是唯一可以查看所有回复的人。

我希望这会有所帮助。

于 2013-08-20T18:29:58.930 回答
0

仅当您使用 Google Apps for Business 或 Google Apps for Education 时,您才能在 Google 表单中收集用户的电子邮件地址,并且只能从您域中的用户那里收集。如果您不满足这些要求,那么您唯一的选择是要求用户填写信息,或通过电子邮件将 URL 发送到预先填写的表单。

这并不是真正的“隐藏”,因为实时表单会报告正在收集用户 ID。

如果您从脚本创建表单,则可以使用Form.setCollectEmail(true)控制电子邮件收集功能。但是,您也可以在不使用任何代码的情况下进行设置。

在表单编辑器中,查找“表单设置”。它们应该出现在所有问题之上。设置需要域登录和用户名收集的复选框。

截屏

收集响应的电子表格将自动包含一个“用户名”列:

另一个截图

于 2013-08-20T20:57:51.177 回答