如何从电子表格发送电子邮件
问题描述:
我在Google Docs上有一个电子表格,其中包含我们在工作中工作的任务。我想要它做的是将整行发送到预期的收件人,但我只能让它发送电子邮件地址后的第一列的信息。所有东西都有到期日期,我希望在它接近该日期时发送提醒,但我不知道该怎么做。如何从电子表格发送电子邮件
任何帮助将不胜感激。 这里是代码,我现在所拥有的:
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);
}
}
答
当你定义你的dataRange这样的:
var dataRange = sheet.getRange(startRow, 1, numRows, 2)
你STARTROW读取数据列1为numRows行但只有2列(最后一个值是'宽度'),所以你可以很容易地修改你的脚本,通过改变这个最后的值来获得你想要的所有列。然后使用row [i] .toString(),你将得到你的逗号分隔的字段。
那么你可能想使用HTML格式例如表格提交数据以获得更好的表现,但是这是你的问题;-)
答
外点当你像这样定义
的数据范围var dataRange = sheet.getRange(startRow, 1, numRows, 2);
你是从A3:C5
取数据也可以参考documentation
如果您可以根据问题的描述发布样本电子表格,那么它将有助于其他人帮助您。
答
这件作品:var message = row[1];
将只获得数组中的第二个元素(索引1)。你需要遍历行来获取所有的数组元素。
var message = row[1];
message.concat(row[2]);
message.concat(row[3]);
依此类推。或者你可以建立一个循环。
http://www.w3schools.com/jsref/jsref_concat_string.asp
而得到的范围内,为什么这样做硬盘的方式? sheet.getRange("A2:B3");
这就是你说你试图在评论之上的评论,尽管它只有4个单元格。 sheet.getRange("A2:G3")
会得到两列到G列。 当然,如果你添加行到工作表,你必须每次修改代码。
相反,试试这个。
var bottomRow = sheet.getLastRow();
var rangeInA1 = "A2:G"+bottomRow;
var dataRange = sheet.getRange(rangeInA1);
请问您能详细说明一下吗? :“所有东西都有到期日期,我希望在它接近该日期时发送提醒” – 2012-07-19 21:59:35