我不知道GAS,我嘗試搜索很多代碼,發現一個非常接近。如果工作表中的IMPORTED DATA更改,則通知電子郵件。 [觸發器不工作]
我希望在當前工作表中的數據發生變化時收到電子郵件通知。 現在,當我進行更改時,我收到一封電子郵件。這是很好的,但我不會讓實際,因爲數據是從另一片/網站
基本上我想進口更改表
- 收到通知時,有導入數據的更改。沒有人會編輯這個。
- 在電子郵件的一端連接一個常駐Excel表單與電子郵件
- ,受影響的行的總數= + -4
虛擬表:https://docs.google.com/spreadsheets/d/1BTdA7Rx16W6la_gri4uP079yIzzgKfZKO610yfQ6724/edit?usp=sharing [觸發器不工作的導入數據]
當前腳本:
function sendNotification() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var cell = ss.getActiveCell().getA1Notation();
var row = sheet.getActiveRange().getRow();
var cellvalue = ss.getActiveCell().getValue().toString();
var to = "[email protected]";
var message = '\n\nSignature';
if(cell.indexOf('G')!=-1){
message = sheet.getRange('D'+ sheet.getActiveCell().getRowIndex()).getValue()
}
var subject = 'Data Updated';
var body = 'Hi there,\n\nThe data on website was updated recently.\n\nKindly refresh the previous excel sheet or click ' + 'https://docs.google.com/spreadsheets/d/1BTdA7Rx16W6la_gri4uP079yIzzgKfZKO610yfQ6724/edit#gid=0' + ' to see changes.\n\n\nThe changes are:\nTotal Rows affected: ' + row + '\n' + message;
MailApp.sendEmail(to, subject, body);
};
我認爲onEdit()只發生在用戶進行更改時。我會考慮使用側邊欄和javascript setTimeout()函數每隔幾秒輪詢一次該值,並跟蹤PropertiesService中的過去值,或者使用JDBC跟蹤單獨的文件或甚至數據庫。 – Cooper
@cooper我們可以在工作表中使用= counta(),並在數字更改時發送通知。但我不知道我將如何製作這個程序。我不知道天然氣實際上 – Ashwendra
那麼你仍然必須使用觸發器來啓動發送,大多數簡單的觸發器都需要用戶採取一些行動。檢查文檔。閱讀[入門部分](https://developers.google.com/apps-script/guides/triggers/)。如果您從表單提交中獲得更改,那麼您可以使用onFormSubmit事件。 – Cooper