【发布时间】:2021-07-02 17:45:25
【问题描述】:
function buildReport() {
var ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Invalid Login MM Pull Internal");
var ws2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Invalid Login External MM Pull External");
var data = ws.getRange("A2:G" + ws.getLastRow()).getValues();
var data2 = ws2.getRange("A2:G" + ws2.getLastRow()).getValues();
let payload = buildAlert(data);
let payload2 = buildAlert(data2)
sendAlert(payload);
}
//buildAlert Fuction
function buildAlert(data) {
var ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Invalid Login MM Pull Internal");
var data = ws.getRange("A2:G" + ws.getLastRow()).getValues();
for (var i = 0; i < data.length; i++){
if (data[i][5] !== "SLACK_SENT")
var ofo = 1;
var restaurant = 2;
var name = 3;
var email = 4;
var sent = 5;
let payload = {
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": ":bell: Invalid Creds :bell:"
}
},
{
"type": "divider"
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": data[i][2] + " has invalid creds for " + data[i][1]
}
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "Please contact have AE contact " + data[i][3] + " at " + data[i][4]
}
},
]
};
ws.getRange(2 + i,7).setValue("SLACK_SENT");
}
};
(function buildAlert(data2) {
var ws2 = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Invalid Login External MM Pull External");
var data2 = ws2.getRange("A2:G" + ws2.getLastRow()).getValues();
for (var i = 0; i < data2.length; i++){
if (data2[i][5] !== "SLACK_SENT")
var ofo = 1;
var restaurant = 2;
var name = 3;
var email = 4;
var sent = 5;
let payload = {
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": ":bell: Invalid Creds :bell:"
}
},
{
"type": "divider"
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": data2[i][2] + " has invalid creds for " + data2[i][1]
}
},
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "Please contact have AE contact " + data2[i][3] + " at " + data2[i][4]
}
},
]
};
ws2.getRange(2 + i,7).setValue("SLACK_SENT");
}
});
function sendAlert(payload) {
const webhook = "https://hooks.slack.com/services/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";
var options = {
"method": "post",
"contentType": "application/json",
"muteHttpExceptions": true,
"payload": JSON.stringify(payload)
};
try {
UrlFetchApp.fetch(webhook, options);
} catch(e) {
Logger.log(e);
}
};
**试图从谷歌表发送松弛消息,但现在它只是从第一行拉,它不会循环。 唯一循环的是当我运行代码时,它会填充一个将其标记为 SLACK_SENT 的单元格。随时问我任何问题或需要澄清任何事情。我正在从两个电子表格中提取数据,并希望为这两个工作表发送 slack。
【问题讨论】:
-
你应该解释你到底卡在哪里,换句话说,你的代码的哪一部分有没有按你预期工作的循环。如果您不知道循环在 JavaScript 中是如何工作的,请阅读 Loops and iteration
-
我有点困惑为什么你有
buildAlert()的2个定义,为什么你用buildReport()中的参数调用函数,但同时你覆盖数据时你读取buildAlert()中的工作表值?我想跟进@Ruben 的查询,请确定哪些行数据没有被循环?
标签: javascript loops google-apps-script google-sheets