我希望有人能帮助我,我想做的是让谷歌表单创建一个新的文档,当表单被编辑后,通过电子邮件发送该pdf。
我知道,当你编辑一个表格时,电子表格中的脚本不会运行,所以我把脚本放到了一个表格中,这就是我遇到的问题。 我无法让脚本读取表单中重新提交的值,它只是一直在返回时出现 "未定义"。
这是我目前得到的脚本。
function Test(e) {
var form = FormApp.openById('****Form Key****'); //Enter Form ID here
var docTemplate = "***doc to be used***";
var docName = "***Name of document***";
var formResponse = form.getResponses();
var one = e.response; //I have tried e.value but does not pull through
var two = e.response; // Column 2
var copyId = DocsList.getFileById(docTemplate)
.makeCopy(docName)
.getId();
// Open the temporary document
var copyDoc = DocumentApp.openById(copyId);
// Get the document’s body section
var copyBody = copyDoc.getActiveSection();
copyBody.replaceText('one', one);
copyBody.replaceText('two', two);
// Save and close the temporary document
copyDoc.saveAndClose();
// Convert temporary document to PDF by using the getAs blob conversion
var pdf = DocsList.getFileById(copyId).getAs("application/pdf");
//Sends the email
var email_Address = "***Email Address***"
var subject = "***Subject";
var body = "**Body***";
MailApp.sendEmail(email_Address, subject, body, {attachments: pdf});
}}
任何帮助都将是非常感激的,因为我已经被这个问题卡住了一段时间,谢谢你。
在表单响应触发函数中,事件是一个实例,即 类 FormResponse. 正因为如此,你不需要打开表格,也不需要得到回复... 你只是得到了一个递给你的,你可以通过以下方式访问 e.response
. 请参阅表格响应事件在 了解事件.)
// Handle form response event
// This function must be a Form Response Trigger, attached to
// a Form (not a Spreadsheet).
function rightTest( e ) {
var formResponses = e.response.getItemResponses(); // array of responses
var one = formResponses[0];
var two = formResponses[1];
...
}
从2015年4月起,不支持DocsList,只需将DocsList.替换为DriveApp即可。如何在我的代码中把DocsList更新为DriveApp?