google-apps-script - 具有命名值的 Googlescript 代码不起作用
问题描述
我正在尝试向我的学生发送一封自动电子邮件,其中包含有关课程作业的反馈。我开发了一个带有标记方案的谷歌表格,我在其中输入了学生编号,但脚本不读取命名值方法。
我试图一一做学生号和它工作的其余代码。
代码如下:
function sendNotification(e){
var s = SpreadsheetApp.getActiveSheet();
var message = "";
var headers =s.getRange(1,1,1,s.getLastColumn()).getValues()[0];
message += "This automated email includes the marks and feedback for
your Main report Assignment.\n\n";
var studentNumber = e.namedValues[headers[3]].toString();
Logger.log("column 3: " + studentNumber);
message += "Student Number: " + studentNumber + "\n\n";
var recipients = studentNumber + "@email.com";
var subject = "Test Email";
MailApp.sendEmail(recipients, subject, message);
}
我希望能够从谷歌表单中收集学生电子邮件,该表单已保存在表单所附电子表格的第 3 列中。
解决方案
对不起,我的回答有点匆忙,因为我真的要离开了。(就像我的代码一样。)通常不要这样做,但是因为您是一位愿意破例的老师。
希望下面的代码有所帮助。(这就是我将如何完成你正在尝试做的任务。)
function helpingTheTeacher() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("YOUR_SHEET_NAME_HERE");
var values = sheet.getRange(2, 1, sheet.getLastRow(), sheet.getLastColumn()).getValues();
for (var i = 0; i < values.length; i++){
var timeStamp = values[i][0];
var studentName = values[i][1];
var studentNumber = values[i][2];
var studentGrade = values[i][3];
var message = "Hi " +studentName + " your grade is " +studentGrade + "."
var email = studentNumber + "@email.com";
var subject = "ALERT: MESSAGE FROM TEACHER!!!";
MailApp.sendEmail(email, subject, message)
}//END OF FOR LOOP
}//END OF FUNCTION
推荐阅读
- java - Android:如何存储用户位置并稍后在服务器端Web应用程序中显示用户遍历的路线
- php - .htaccess 文件正在工作,但会导致不断刷新/重定向
- python - Python BeautifulSoup - 忽略子标签和 ID
- sql - 如何转置 SQL 选择语句中的列
- python - 制作用于指尖跟踪的 Cascade 文件
- javascript - 在本机反应中重置,卸载屏幕
- google-chrome-devtools - Dynamics 365/CRM Chrome 调试器无法正常工作
- java - 需要将下面的 JSON Object 转换为 String JAVA
- docker - 如何使用 docker 仅列出未命名的卷
- asp.net-core-webapi - .NET Core 3 API - 一个请求后停止工作?