[英]How would I do a for loop that waits until my function has completed for each loop?
[英]How do I loop a function and each time insert different variables which I'm pulling from cells in my spreadsheet until I finish my range
我正在嘗試運行 function ,它將為每一行放置一個 Twilio 調用,並從每一行收集不同的變量。
這意味着如果我選擇了 10 行,我想進行 10 次調用,但是每個調用都有不同的變量,我從單元格行中提取這些變量,然后將這些變量插入到調用參數中。
我知道如何使用選擇作為參數的行進行調用,但如果我 select 假設每個調用是唯一的 10 行范圍,我無法弄清楚如何重復更多行。
function getCc() {
var range = SpreadsheetApp.getActiveRange();
var row = range.getRow();
var range2 = SpreadsheetApp.getActiveSheet().getRange("A"+row);
return range2.getValue();
}
function getExp() {
var range = SpreadsheetApp.getActiveRange();
var row = range.getRow();
var range2 = SpreadsheetApp.getActiveSheet().getRange("B"+row);
return range2.getValue();
}
function getCvc() {
var range = SpreadsheetApp.getActiveRange();
var row = range.getRow();
var range2 = SpreadsheetApp.getActiveSheet().getRange("C"+row);
return range2.getValue();
}
function getAmount() {
var range = SpreadsheetApp.getActiveRange();
var row = range.getRow();
var range2 = SpreadsheetApp.getActiveSheet().getRange("D"+row);
return range2.getValue();
}
function getNum() {
var range = SpreadsheetApp.getActiveRange();
var row = range.getRow();
var range2 = SpreadsheetApp.getActiveSheet().getRange("E"+row);
return range2.getValue();
}
function makeCall() {
var callUrl = "https://api.twilio.com/2010-04-01/Accounts/xxxxxxxxxxxxxxxxxxxxxxx/Calls.json";
var num = getNum();
var amount = getAmount();
var cc = getCc();
var lastfour = cc.toString().substring(12);
var exp = getExp();
var cvc = getCvc();
var payload = {
"SendDigits" : "wwww1" + num + "#wwww" + amount + "#wwww" + cc + "#www" + exp + "#www" + cvc + "#wwwwwwwwwwwwwwwwwwwww2",
"To": "+184xxxxxxxx",
"From" : "+134xxxxxxxxx",
"Url": "https://brasxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"Method": "GET"
};
var options = {
"method" : "post",
"payload" : payload
};
options.headers = {
"Authorization" : "Basic " + Utilities.base64Encode("ACxxxxxxxxxxxxxxxxxxxb:6xxxxxxxxxxxxxxxxxx")
};
var ui = SpreadsheetApp.getUi();
var response = ui.alert('Proceed with Charge ?', 'Do you want to Charge Card \r\n Ending in '+lastfour+' for $'+amount+' ?', ui.ButtonSet.YES_NO);
if (response == ui.Button.YES) {
UrlFetchApp.fetch(callUrl, options);
}
}
這個怎么樣:
function getData() {
const ss=SpreadsheetApp.getActive();
const sh=ss.getSheetByName('Your Sheet Name');
const sr=2;//start row
const sc=1;//start column
const rg=sh.getRange(sr,sc,sh.getLastRow()-sr+1,sh.getLastColumn()-sc+1);
const vs=rg.getValues();
vs.forEach(function(r,i){
makeCall(r);
})
}
function makeCall(row) {
var callUrl = "https://api.twilio.com/2010-04-01/Accounts/xxxxxxxxxxxxxxxxxxxxxxx/Calls.json";
var num = row[4];
var amount = row[3];
var cc = row[0];
var lastfour = cc.toString().substring(12);
var exp = row[1];
var cvc = row[2];
var payload = {
"SendDigits" : "wwww1" + num + "#wwww" + amount + "#wwww" + cc + "#www" + exp + "#www" + cvc + "#wwwwwwwwwwwwwwwwwwwww2",
"To": "+184xxxxxxxx",
"From" : "+134xxxxxxxxx",
"Url": "https://brasxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx",
"Method": "GET"
};
var options = {
"method" : "post",
"payload" : payload
};
options.headers = {
"Authorization" : "Basic " + Utilities.base64Encode("ACxxxxxxxxxxxxxxxxxxxb:6xxxxxxxxxxxxxxxxxx")
};
var ui = SpreadsheetApp.getUi();
var response = ui.alert('Proceed with Charge ?', 'Do you want to Charge Card \r\n Ending in '+lastfour+' for $'+amount+' ?', ui.ButtonSet.YES_NO);
if (response == ui.Button.YES) {
UrlFetchApp.fetch(callUrl, options);
}
}
也許您可以在電子表格中添加一列來確定調用類型,您可以使用 switch 語句將每個調用的相應數據用於 select
function placeCalls() {
const ss=SpreadsheetApp.getActive();
const sh=ss.getSheetByName('Call Sheet');
const v=sh.getDataRange().getValues();
v.forEach(function(r,i){
let calltype=r[10];
switch(calltype) { //you will have to figure out what ever type of structure fits your needs
case 'exp':
let params={calltype:r[10],param1:,param2:}
break;
let params=
case 'cc':
break;
case 'cvc':
break;
}
placeCall(params);
})
}
function placeColl() {
//write your call function here.
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.