【发布时间】:2020-07-28 17:03:36
【问题描述】:
非常需要帮助。
使用 Google 表单收集数据,以填充 2 个 Google 文档模板之一,具体取决于在 Google 表单中选择了选项 1 还是 2。填充的模板以 PDF 格式保存在“最终”文件夹中,然后通过电子邮件发送到在 Google 表单中提交的电子邮件地址。
目前,我能够在正确的文件夹中生成正确的 PDF 文件并将电子邮件发送到正确的地址,但没有附件,只有 [Object object] 字样。
在我包含 if/else 函数之前,我能够正确发送带有附件的电子邮件,这意味着我对生成的 pdf 的 if/else 和命名造成了问题。我就是想不通。
function autoFillGoogleDocFromForm(e) {
//form values
var timestamp = e.values[0];
var firstName = e.values[1];
var lastName = e.values[2];
var email = e.values[3];
var multiplechoice = e.values[4];
if (multiplechoice == "Template 1") {
//This section will complete template 1
var file = DriveApp.getFileById("Template 1 ID");
//Create copy of Template 1
var folder = DriveApp.getFolderById("Templates folder ID")
var copy = file.makeCopy(lastName + ',' + firstName, folder);
//Open copy of Template 1 and replace key fields per form data
var doc = DocumentApp.openById(copy.getId());
var body = doc.getBody();
body.replaceText('{{First Name}}', firstName);
body.replaceText('{{Last Name}}', lastName);
doc.saveAndClose();
Utilities.sleep(1500);
} else {
//This section will complete Template 2 by default
var file = DriveApp.getFileById("Template 2 ID");
//Create copy of Template 2
var folder = DriveApp.getFolderById("Templates folder ID")
var copy = file.makeCopy(lastName + ',' + firstName, folder);
//Open copy of Template 2 and replace key fields per form data
var doc = DocumentApp.openById(copy.getId());
var body = doc.getBody();
body.replaceText('{{First Name}}', firstName);
body.replaceText('{{Last Name}}', lastName);
doc.saveAndClose();
Utilities.sleep(1500);
}
//create pdf copy of completed template either 1 or 2 depending on IF
var pdffolder = DriveApp.getFolderById("Templates folder ID");
var pdfFILE = DriveApp.getFileById(copy.getId()).getAs('application/pdf');
pdfFILE.setName(copy.getName() + ".pdf");
var theFolder = pdffolder;
var theFile = DriveApp.createFile(pdfFILE);
theFolder.addFile(theFile);
Utilities.sleep(1500);
var subject = "File attached";
var attach = theFile;
var pdfattach = attach.getAs(MimeType.PDF);
MailApp.sendEmail(email, subject, {attachments: [pdfattach]});
}
【问题讨论】:
标签: email if-statement pdf google-apps-script google-sheets