在脚本问题中获取 google 表单标题和值
geting google form title and values in script issues
我希望从 google 表单响应中先前提交的行中获取一些值,然后将这些值与表单标题一起发送给最终用户。
但是,我想我可能做错了,我可以调高点差 sheet 和 sheet 并用它来编辑字段,但我看不出怎么做要从这里拉回值,它只是作为 "range" 返回。从范围中获取值的正确语法是什么?
有什么办法可以提取链接表格的标题吗?或者 spreadsheet 如果那是不可能的,因为那只是 "formName" +(responses)。
这是我到目前为止的代码,它可能只是缺少一些简单的东西(它接受的 e 值是格式化的 URL):
function doGet(e){
var params = JSON.stringify(e);
var message = "thank you, your Decision has been sent.";
var id = '10kf5QDeBc-vr6XJnkFxQh-ch_poQhqBQWQbgJ';
var ss = SpreadsheetApp.openById(id);
// var ss = SpreadsheetApp.getActiveSpreadsheet();
// var sheet = ss.getActiveSheet();
var sheet = ss.getSheets()[0];
var column = 20;
var datecolumn = 5;
var row = e.parameter.row;
//var title = sheet.getTitle();
var sheetname = ss.getSheetName();
var sheetnamesheet = sheet.getName();
var eventDaterange = sheet.getRange(row, datecolumn);
var eventDate = eventDaterange.getvalues();
var approval_cell = sheet.getRange(row, column);
//set default to declined
approval_cell.setValue("declined");
var approvedMessage = "<HTML><body>"+
"<h2>your request has been Approved </h2><br />"
+"<P>" + title +" " + sheet
+"<p>" + " for this date: "+ eventDate;
var deniedMessage = "<HTML><body>"+
"<h2>your request has been denied </h2><br />"
+"<P>" + ss +" " + sheet
+"<p>" + " for this date: "+ eventDate;
var aprovalResponce = (e.parameter.approval == 'true') ? approvedMessage : deniedMessage;
//var msg = "Your manager said this: " + aprovalResponce;
var msg = aprovalResponce
var replyEmail = e.parameter.reply;
if (e.parameter.approval == 'true') {
approval_cell.setValue("APPROVED");
} else {
approval_cell.setValue("DECLINED");
}
//send the actual email out
//MailApp.sendEmail(replyEmail, "Approval Request", msg);
MailApp.sendEmail(replyEmail, "Approval Request", {htmlBody: msg});
return HtmlService.createHtmlOutput(message);
}
要从范围中获取值,您可以使用 var values = range.getValues();
这将 return 产生一个二维值数组,就像表示范围的网格,即值[行][柱子]。所以,如果我们的范围是 "A1:C3",并且我们想要 A1 和 C3 中的值,我们可以这样做:
var range = sheet.getRange("A1:C3");
var values = range.getValues();
var valueOne = values[0][0];
var valueTwo = values[2][2];
var msg = '"Form name" + valueOne + ValueTwo'
虽然我不知道如何获取表单名称,也许像 e.source.title 这样简单的东西?如果不是,如果您使用多个表单,您可能必须通过从提交的表单中获取表单 ID,然后使用 switch 语句将该 ID 与脚本中的表单名称列表相匹配来执行此操作。
我希望从 google 表单响应中先前提交的行中获取一些值,然后将这些值与表单标题一起发送给最终用户。
但是,我想我可能做错了,我可以调高点差 sheet 和 sheet 并用它来编辑字段,但我看不出怎么做要从这里拉回值,它只是作为 "range" 返回。从范围中获取值的正确语法是什么?
有什么办法可以提取链接表格的标题吗?或者 spreadsheet 如果那是不可能的,因为那只是 "formName" +(responses)。
这是我到目前为止的代码,它可能只是缺少一些简单的东西(它接受的 e 值是格式化的 URL):
function doGet(e){
var params = JSON.stringify(e);
var message = "thank you, your Decision has been sent.";
var id = '10kf5QDeBc-vr6XJnkFxQh-ch_poQhqBQWQbgJ';
var ss = SpreadsheetApp.openById(id);
// var ss = SpreadsheetApp.getActiveSpreadsheet();
// var sheet = ss.getActiveSheet();
var sheet = ss.getSheets()[0];
var column = 20;
var datecolumn = 5;
var row = e.parameter.row;
//var title = sheet.getTitle();
var sheetname = ss.getSheetName();
var sheetnamesheet = sheet.getName();
var eventDaterange = sheet.getRange(row, datecolumn);
var eventDate = eventDaterange.getvalues();
var approval_cell = sheet.getRange(row, column);
//set default to declined
approval_cell.setValue("declined");
var approvedMessage = "<HTML><body>"+
"<h2>your request has been Approved </h2><br />"
+"<P>" + title +" " + sheet
+"<p>" + " for this date: "+ eventDate;
var deniedMessage = "<HTML><body>"+
"<h2>your request has been denied </h2><br />"
+"<P>" + ss +" " + sheet
+"<p>" + " for this date: "+ eventDate;
var aprovalResponce = (e.parameter.approval == 'true') ? approvedMessage : deniedMessage;
//var msg = "Your manager said this: " + aprovalResponce;
var msg = aprovalResponce
var replyEmail = e.parameter.reply;
if (e.parameter.approval == 'true') {
approval_cell.setValue("APPROVED");
} else {
approval_cell.setValue("DECLINED");
}
//send the actual email out
//MailApp.sendEmail(replyEmail, "Approval Request", msg);
MailApp.sendEmail(replyEmail, "Approval Request", {htmlBody: msg});
return HtmlService.createHtmlOutput(message);
}
要从范围中获取值,您可以使用 var values = range.getValues();
这将 return 产生一个二维值数组,就像表示范围的网格,即值[行][柱子]。所以,如果我们的范围是 "A1:C3",并且我们想要 A1 和 C3 中的值,我们可以这样做:
var range = sheet.getRange("A1:C3");
var values = range.getValues();
var valueOne = values[0][0];
var valueTwo = values[2][2];
var msg = '"Form name" + valueOne + ValueTwo'
虽然我不知道如何获取表单名称,也许像 e.source.title 这样简单的东西?如果不是,如果您使用多个表单,您可能必须通过从提交的表单中获取表单 ID,然后使用 switch 语句将该 ID 与脚本中的表单名称列表相匹配来执行此操作。