2017-05-14 78 views
1

我一直在使用Sheets API v4來允許授權用戶從表單中將數據輸入到電子表格中。我想要做的是當添加新數據時,Google Apps腳本會觸發一個函數。我似乎無法得到編輯觸發器使用Google表格API V4和Google應用程序腳本

function createSpreadsheetEditTrigger() { 
    var ss = SpreadsheetApp.getActive(); 
    ScriptApp.newTrigger('makeLog') 
     .forSpreadsheet(ss) 
     .onEdit() 
     .create(); 
} 

function makeLog(){ 
Logger.log("New Entry") 
} 

有沒有可能這樣做?

回答

2

下面的示例腳本如何?當Sheet Sheet v4從外部編輯電子表格時,onChange()成爲它的觸發器。因此,請將您的腳本從onEdit()更改爲onChange()。我準備了一個用於測試的示例腳本。

此示例腳本在電子表格由Sheet API v4編輯時發送電子郵件。我證實,這工作正常。當您使用此示例時,請輸入您的電子郵件並首先運行createSpreadsheetEditTrigger()。由此,安裝觸發器。之後,通過Sheet API v4編輯電子表格。

當通過Sheet API v4從外部編輯電子表格時,我使用sendEmail()作爲示例,因爲腳本編輯器已關閉。

示例腳本:

function createSpreadsheetEditTrigger(){ 
    var ss = SpreadsheetApp.getActive(); 
    ScriptApp.newTrigger('makeLog') 
     .forSpreadsheet(ss) 
     .onChange() 
     .create(); 
} 

function makeLog() { 
    MailApp.sendEmail("### Your e-mail address ###", "test mail", "Spreadsheet was edited."); 
} 

如果我誤解你的問題,我很抱歉。

+0

是的,工作感謝 – slanton

+0

歡迎,也謝謝你。如果解決了這個問題,請按接受按鈕解決問題。其他人也可以使用這個問題和答案。幫助是http://stackoverflow.com/help/someone-answers – Tanaike

+0

我可以再問你一個問題嗎?觸發器在服務器上。有沒有辦法在客戶端觸發一個函數? – slanton

相關問題