【发布时间】:2016-02-06 11:31:45
【问题描述】:
我制作了一个将数据保存在电子表格中的谷歌表单,我正在为此类电子表格编写代码,因此它会向我发送一封包含其中一些数据的电子邮件,但是我正在努力获取其中一个值。第 4 (D) 列从发件人那里获取电子邮件地址,因此我想恢复该值以将其作为“replyTo”变量并能够直接回复任何询问的人。
这是我目前的代码:
function Initialize() {
try {
var triggers = ScriptApp.getProjectTriggers();
for (var i in triggers)
ScriptApp.deleteTrigger(triggers[i]);
ScriptApp.newTrigger("EmailGoogleFormData")
.forSpreadsheet(SpreadsheetApp.getActiveSpreadsheet())
.onFormSubmit().create();
} catch (error) {
throw new Error("Please add this code in the Google Spreadsheet");
}
}
function EmailGoogleFormData(e) {
try {
if (MailApp.getRemainingDailyQuota() > 0) {
// You may replace this with another email address
var email = "nico.pinera@filmmusiclive.com";
/*********** Sender email address || I HAVE PROBLEMS HERE ***********/
var replyTo, senderMail,ss,r_max;
ss = SpreadsheetApp.getActiveSheet();
//r_max = ss.getmaxRows();
// Returns the active cell
var range = ss.getActiveRange();
senderMail = range.getValues()[3];
// Enter your subject for Google Form email notifications
var subject = "Parte de NNTT recibido"
var key, entry,
message = "<b>Hola pepito</b><br/>aa</br><br><br><br><br>",
ss = SpreadsheetApp.getActiveSheet(),
cols = ss.getRange(1, 1, 1, ss.getLastColumn()).getValues()[0];
// Iterate through the Form Fields
for (var keys in cols) {
key = cols[keys];
entry = e.namedValues[key] ? e.namedValues[key].toString() : "";
// Only include form fields that are not blank
if ((entry !== "Sí") && (entry !== "") && (entry !== ",") && (entry.replace(/,/g, "") !== "Sí"))
message += '<img src="" /><br/><br/>' + ' <b><u> ' + key + '</u></b>' + ' => ' + entry ;
}
MailApp.sendEmail(email, replyTo, subject, message);
}
} catch (error) {
Logger.log(error.toString());
}
}
有人知道如何从该单元格中获取活动值吗?这将是 D 列中的任何行。 此外,我确实通过找到 maxRows() 的 int 然后找到 maxRows() 的单元格和 D 列的值来做到这一点,但是如果我手动编辑电子表格(比如我在最后一行手动添加一个值),新的表单请求将存储在该请求之上并将其向下移动。 (如果我编辑第 12 行并收到新请求,我的行会下移到第 13 行,新的行会存储在第 12 行,依此类推)。
【问题讨论】:
标签: javascript google-apps-script google-sheets google-forms