Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 我如何在谷歌电子表格上浏览行?_Javascript_Google Spreadsheet Api - Fatal编程技术网

Javascript 我如何在谷歌电子表格上浏览行?

Javascript 我如何在谷歌电子表格上浏览行?,javascript,google-spreadsheet-api,Javascript,Google Spreadsheet Api,我正在寻找一种方法,使用Google脚本(基本上与JavaScript相同)遍历电子表格中的响应。它工作正常,但问题是此代码不断发送电子邮件,以获取已在电子邮件中发送的数据。我对JavaScript知之甚少,但我认为删除前一行并只遍历一行是有意义的。以下是迄今为止的代码: function autoEmail() { var sheet = SpreadsheetApp.getActiveSheet(); var startRow = 2; var numRows = 2; var dataRa

我正在寻找一种方法,使用Google脚本(基本上与JavaScript相同)遍历电子表格中的响应。它工作正常,但问题是此代码不断发送电子邮件,以获取已在电子邮件中发送的数据。我对JavaScript知之甚少,但我认为删除前一行并只遍历一行是有意义的。以下是迄今为止的代码:

function autoEmail() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2;
var numRows = 2;
var dataRange = sheet.getRange(startRow, 1, numRows, 7)
var data = dataRange.getValues();
for (i in data) {
var column = data[i];
var emailAddress = "OMITTED FOR PRIVACY";
var message = column[3] + ", who is a " + column[4] + " Scout, wants to have a " + column[6] + " on " + column[5] + ". You can contact him at " + column[1] + ". This is an automated email sent by OMITTED FOR PRIVACY.";
var subject = column[3] + " Wants To Rank Up!";
MailApp.sendEmail(emailAddress, subject, message);
}
}

有什么建议吗?

您是说处理当前行,然后删除它,这样您就不会意外地重新处理它了?这似乎是合理的,但最好不要删除您的数据,以防出现问题。也许你可以在每行末尾的空栏中写上“完成”,并在发送新电子邮件之前检查是否完成

现在有一些问题,我可以提供更多帮助--

为什么要获取两行(
numRows=2
)?看起来您要么只获取一行,要么获取N(条目数)行

另外,我一直听说在Javascript中,最好使用普通的for循环

for (var colNum = 0; colNum < data.length; colNum++) {
    var column = data[colNum];
在类似数组的对象上,因为“继承的属性也被枚举”()

编辑:说到这里,当你这么做的时候

for (i in data) {
    var column = data[i];
尝试在循环
Logger.log(i)中记录
i
I
可能是一段数据,而不是二维数组中的索引

结束编辑

免责声明:我知道Stack Overflow不建议在回答中要求澄清,但我还没有足够的声誉来添加“评论”。-)

for (i in data) {
    var column = data[i];