Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.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
Google apps script 如何从电子表格发送电子邮件_Google Apps Script - Fatal编程技术网

Google apps script 如何从电子表格发送电子邮件

Google apps script 如何从电子表格发送电子邮件,google-apps-script,Google Apps Script,我有一个关于谷歌文档的电子表格,上面有我们正在工作的工作任务。我希望它做的是将整行发送给预期的收件人,但我只能让它从电子邮件地址后的第一列发送信息。每件事都有一个截止日期,我想让它发送一个提醒,当它接近那个日期,但我不知道如何做到这一点 任何帮助都将不胜感激。 以下是我现在掌握的代码: function sendEmails() { var sheet = SpreadsheetApp.getActiveSheet(); var startRow = 3; // First row o

我有一个关于谷歌文档的电子表格,上面有我们正在工作的工作任务。我希望它做的是将整行发送给预期的收件人,但我只能让它从电子邮件地址后的第一列发送信息。每件事都有一个截止日期,我想让它发送一个提醒,当它接近那个日期,但我不知道如何做到这一点

任何帮助都将不胜感激。 以下是我现在掌握的代码:

function sendEmails() {
  var sheet = SpreadsheetApp.getActiveSheet();
  var startRow = 3;  // First row of data to process
  var numRows = 2;   // Number of rows to process
  // Fetch the range of cells A2:B3
  var dataRange = sheet.getRange(startRow, 1, numRows, 2)
  // Fetch values for each row in the Range.
  var data = dataRange.getValues();
  for (i in data) {
    var row = data[i];
    var emailAddress = row[0];  // First column
    var message = row[1];       // Column B, Column C, Column D, Column E, Column F, Column G
    var subject = "Email Test Spreadsheet";
    MailApp.sendEmail(emailAddress, subject, message);
  }
}

当您这样定义数据范围时:

var dataRange = sheet.getRange(startRow, 1, numRows, 2)
您可以从startRow第1列中读取numRows的数据,但只能读取2列(最后一个值是“宽度”),因此您可以轻松修改脚本,只需更改最后一个值即可获得所需的所有列。然后使用行[i].toString(),您将得到逗号分隔的字段


然后,您可能希望获得更好的表示,例如使用HTML格式在表中显示数据,但这超出了问题的重点;-)

当您定义这样的数据范围时

var dataRange = sheet.getRange(startRow, 1, numRows, 2);
您正在从
A3:C5

您也可以参考


如果您可以根据问题的描述发布一份样本电子表格,那么其他人将对您有所帮助。

这篇文章:
var message=row[1]
将仅获取数组中的第二个元素(索引1)。您需要遍历该行以获取所有数组元素

var message = row[1];
message.concat(row[2]);
message.concat(row[3]);
等等。或者你可以建立一个循环

而要获得射程,为什么要这么辛苦呢<代码>表.getRange(“A2:B3”) 这就是你所说的你试图在这一行上面的评论中得到的范围,尽管它只有4个单元格
sheet.getRange(“A2:G3”)
将两行输出到G列。 当然,如果向工作表中添加行,则每次都必须修改代码

相反,试试这个

var bottomRow = sheet.getLastRow();
var rangeInA1 = "A2:G"+bottomRow;
var dataRange = sheet.getRange(rangeInA1);

你能详细说明一下吗“每样东西都有一个到期日,我想让它在临近到期日时发送提醒”