在脚本问题中获取 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 与脚本中的表单名称列表相匹配来执行此操作。