2013-10-12 56 views
0

我希望有人可以幫助我,我想要做的是讓Google表單創建一個新文檔並通過電子郵件將該PDF發送給表單被編輯。Google Apps腳本:通過編輯對Google表單的響應來創建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}); 

}} 

任何幫助將不勝感激,因爲我一直堅持這一段時間。謝謝。

回答

1

在Form Response Trigger函數中,該事件是Class FormResponse的實例。因此,您不需要打開表格或獲得回覆......您剛剛交給您,您可以通過e.response訪問。 (見表格Understanding Events響應事件。)

// 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]; 
    ... 
} 
相關問題