簡體   English   中英

如何在Google電子表格腳本中計算變量,然后返回確認電子郵件

[英]How to calculate a variable in Google spreadsheet script, then return in confirmation email

我對此有些陌生,因此在此先感謝您的幫助! 我收到了一封確認電子郵件,該電子郵件基於將Google表單提交到電子表格的提交觸發/事件進行工作。 但是,我希望腳本可以從用戶提交的內容中抓取兩個字段,然后計算要包含在確認電子郵件中的字段。 一旦添加了用於計算字段(cost1)的代碼,確認電子郵件便停止發送。 我檢查了執行記錄,它運行得更快,並說成功執行了,但是沒有發送電子郵件...我的代碼有問題嗎?還是我要求腳本執行太多操作?

劇本:

function EmailFormConfirmation() {


  var sheetName = "Form Responses"; 
  var columnNumber = 3;
  var subject = "Summer School Registration Confirmation";
  var gn = 2;
  var sfn = 4;
  var sln = 5; 
  var s1 = 13;
  var s2 = 14;


  var ss = SpreadsheetApp.getActiveSpreadsheet(); 
  var dataSheet = ss.getSheetByName(sheetName);
  var numRows = dataSheet.getLastRow();
  var email = dataSheet.getRange(numRows,columnNumber).getValue();
  var guardianName = dataSheet.getRange(numRows,gn).getValue();
  var studentFirst = dataSheet.getRange(numRows,sfn).getValue();
  var studentLast = dataSheet.getRange(numRows,sln).getValue();
  var session1 = dataSheet.getRange(numRows,s1).getValue();
  var session2 = dataSheet.getRange(numRows,s2).getValue();
  var emailPattern = /^([a-zA-Z0-9])+([\.a-zA-Z0-9_-])*@([a-zA-Z0-9_-])+(\.[a-zA-Z0-9_-]+)+$/; //email reg expression
  var validEmailAddress = emailPattern.test(email); 
  var cost1 = 0
    if(session1 === "Driver's Education Classroom & Behind the Wheel")
    {
      var cost1 = cost1+400
    }
    else
    {
      var cost1 = cost1+180
    }

    if(session2 > 0)
    {
      var cost1 = cost1+180
      return(cost1)
    }
    else
    {
      return(cost1)
    };
  var body = "Dear" + " " + guardianName + "," +
  "\n\nThank you for submitting summer school registration for" + " " + studentFirst + " " + studentLast + "." +
  "\n\nYou have selected the following for Session 1:" + " " + session1 +
  "\n\nYou have selected the following for Session 2:" + " " + session2 +
  "\n\nIf any changes need to be made, please contact the office." +
  "\n\nYour total fees due for summer school are:" + " " + "$" + cost1 +  
  "\n\n\nSummer School Registrar";

  if (validEmailAddress) {

      MailApp.sendEmail(email, subject,body); 
    }

  }  

return總是在JS函數中運行的最后一件事,並且在運行MailApp.sendEmail之前使函數短路。 同樣,JS中的變量是函數范圍的 因此,您無需在if塊內部聲明var

下面我使用了三元運算符[test ? if true : else] [test ? if true : else] ,然后將長字符串設置為變量。

您的費用計算應如下所示:

var dcebw = "Driver's Education Classroom & Behind the Wheel";

var cost1 = session1 === dcebw ? 400 : 180;

cost1 += session2 > 0 ? 180 : 0;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM