【发布时间】:2015-07-15 09:09:11
【问题描述】:
我在这里有一段代码,在提交表单时,它应该:
使用表单响应在电子表格中执行一些计算,创建一个包含用户结果的 pdf 文件,并将其通过电子邮件发送给他们。
我设置了一个触发器,它运行“onFormSubmit”,事件“来自电子表格”、“onFormSubmit”,这是我的代码:
//Set out global variables
var docTemplate = "1Ff3SfcXQyGeCe8-Y24l4EUMU7P9TsgREsAYO9W6RE2o";
var docName="Calculations";
//createOnFormSubmitTrigger();
function onFormSubmit(e){
//Variables
var ssID = '1dMmihZoJqfLoZs9e7YMoeUb_IobW4k6BbOuMDOTTLGk';
var ss = SpreadsheetApp.openById(ssID);
ss.setActiveSheet(ss.getSheetByName("Sheet3"));
var totalOutstandingPrincipalDebt = SpreadsheetApp.getActiveSheet().getRange("G25").getValue();
var totalOutstandingInterest = SpreadsheetApp.getActiveSheet().getRange("H25").getValue();
var totalOutstandingCompensation = SpreadsheetApp.getActiveSheet().getRange("I25").getValue();
var dailyInterestRate = SpreadsheetApp.getActiveSheet().getRange("J25").getValue();
var grandTotal = SpreadsheetApp.getActiveSheet().getRange("K25").getValue();
var userEmail = SpreadsheetApp.getActiveSheet().getRange("H24").getValue();
//Template Info
var copyId=DriveApp.getFileById(docTemplate).makeCopy(docName+' for '+userEmail).getId();
var copyDoc = DocumentApp.openById(copyId);
var copyBody = copyDoc.getActiveSection();
//Putting the data into the file
copyBody.insertParagraph(1,'Total Outstanding Principal Debt: £' + totalOutstandingPrincipalDebt);
copyBody.insertParagraph(2,'Total Outstanding Interest: £'+ totalOutstandingInterest );
copyBody.insertParagraph(3,'Total Outstanding Compensation: £'+ totalOutstandingCompensation);
copyBody.insertParagraph(4,'Grand Total: £' + grandTotal);
copyBody.insertParagraph(5,'Daily Interest Rate: £'+ dailyInterestRate);
copyDoc.saveAndClose();
//email pdf document as attachment
var pdf = DriveApp.getFileById(copyId).getAs("application/pdf");
var subject = "Calculations";
var body = "Thank you very much for using our online calculator. Please find your results attached.";
MailApp.sendEmail(userEmail, subject, body, {htmlBody: body, attachments: pdf});
//Deletes temporary Document
DriveApp.getFileById(copyId).setTrashed(true);
}
当我在脚本编辑器中时,脚本有时会运行良好(并非总是如此?!),但是当我提交表单时,我收到以下错误通知:“发送电子邮件失败:没有收件人(行40,文件“代码”)”,其中第40行是行:
MailApp.sendEmail(userEmail, subject, body, {htmlBody: body, attachments: pdf});
我已经尝试使用 getNote() 而不是 getValue() 作为 userEmail 变量,但这也不起作用!我还确保电子表格上的单元格引用格式为纯文本而不是数字,但我不确定现在还可以尝试什么!任何建议将不胜感激!
提前非常感谢:)
【问题讨论】:
标签: javascript forms google-apps-script triggers eventtrigger