我有 2 個服務器端腳本處理來自 html 表單的資訊。第一個腳本將用戶輸入存盤在我的 Google 表格的最后一個可用行中。第二個腳本向同一 Google 作業表中新創建的行的下一個可用單元格添加了一些附加資訊。
兩個腳本都運行良好。但有點煩人的是,我必須始終手動或使用基于時間的觸發器運行第二個腳本。所以,這是我的問題:如何讓這 2 個腳本一個接一個地自動運行或將它們組合成一個腳本?
腳本 1(追加新行)
function AddRecord(comapny, salutation, name, phone, email, appointment, room) {
var url = 'SHEET_URL';
var ss = SpreadsheetApp.openByUrl(url);
var webAppSheet = ss.getSheetByName("SHEE_ID");
webAppSheet.appendRow([comapny, salutation, name, phone, email, appointment, room]);
}
腳本 2(向新附加的行添加其他詳細資訊)
function addMoreDetailsToRecord() {
var url = 'SHEET_URL';
var ss = SpreadsheetApp.openByUrl(url);
var webAppSheet = ss.getSheetByName("SHEE_ID");
var data = webAppSheet.getDataRange().getValues();
var data_len = data.length;
for (var i = 0; i < data_len; i ) {
if (data[i][7] == "8:00 AM" && data[i][9] === "" && data[i][10] === "") {
webAppSheet.getRange(i 1, 9).setValue("NEW APPOINTMENT");
webAppSheet.getRange(i 1, 10).setValue("ROOM NUMBER ONE");
webAppSheet.getRange(i 1, 11).setValue("NAME OF ORGANIZER");
}
else if (data[i][7] == "10.00AM" && data[i][9] === "" && data[i][10] === "") {
webAppSheet.getRange(i 1, 9).setValue("NEW APPOINTMENT");
webAppSheet.getRange(i 1, 10).setValue("ROOM NUMBER TWO");
webAppSheet.getRange(i 1, 11).setValue("NAME OF ORGANIZER");
}
}
}
非常感謝您的幫助和提示。
uj5u.com熱心網友回復:
您可以從第一個腳本中呼叫第二個腳本。
function AddRecord(comapny, salutation, name, phone, email, appointment, room) {
var url = 'SHEET_URL';
var ss = SpreadsheetApp.openByUrl(url);
var webAppSheet = ss.getSheetByName("SHEE_ID");
webAppSheet.appendRow([comapny, salutation, name, phone, email, appointment, room]);
addMoreDetailsToRecord(); //just call your second function. you can add arguments to it if needed, too
}
這樣,每次運行時AddRecord(),addMoreDetailsToRecord()也會在最后執行。
uj5u.com熱心網友回復:
正如@Rodrigo Biffi所說,如果您希望腳本在 之后立即運行AddRecord,您始終可以在其末尾呼叫該函式。為確保更改已執行,您可以使用SpreadSheet.flush()
Code.gs
function AddRecord(comapny, salutation, name, phone, email, appointment, room) {
var url = 'SHEET_URL';
var ss = SpreadsheetApp.openByUrl(url);
var webAppSheet = ss.getSheetByName("SHEE_ID");
webAppSheet.appendRow([comapny, salutation, name, phone, email, appointment, room]);
SpreadSheet.flush()
addMoreDetailRow(webAppSheet)
}
function addMoreDetailsToRecord(webAppSheet) {
var data = webAppSheet.getDataRange().getValues();
var data_len = data.length;
for (var i = 0; i < data_len; i ) {
if (data[i][7] == "8:00 AM" && data[i][9] === "" && data[i][10] === "") {
webAppSheet.getRange(i 1, 9).setValue("NEW APPOINTMENT");
webAppSheet.getRange(i 1, 10).setValue("ROOM NUMBER ONE");
webAppSheet.getRange(i 1, 11).setValue("NAME OF ORGANIZER");
}
else if (data[i][7] == "10.00AM" && data[i][9] === "" && data[i][10] === "") {
webAppSheet.getRange(i 1, 9).setValue("NEW APPOINTMENT");
webAppSheet.getRange(i 1, 10).setValue("ROOM NUMBER TWO");
webAppSheet.getRange(i 1, 11).setValue("NAME OF ORGANIZER");
}
}
}
如果腳本在兩個單獨的專案中,您始終可以創建一個庫并將其添加到您的主專案中。
檔案
- 使用庫的最佳實踐
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/367959.html
