2012-07-19 140 views
0

我在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); 
    } 
} 
+0

请问您能详细说明一下吗? :“所有东西都有到期日期,我希望在它接近该日期时发送提醒” – 2012-07-19 21:59:35

回答

0

当你定义你的dataRange这样的:

var dataRange = sheet.getRange(startRow, 1, numRows, 2) 

你STARTROW读取数据列1numRows行但只有2列(最后一个值是'宽度'),所以你可以很容易地修改你的脚本,通过改变这个最后的值来获得你想要的所有列。然后使用row [i] .toString(),你将得到你的逗号分隔的字段。

那么你可能想使用HTML格式例如表格提交数据以获得更好的表现,但是这是你的问题;-)

0

外点当你像这样定义

的数据范围
var dataRange = sheet.getRange(startRow, 1, numRows, 2); 

你是从A3:C5

取数据也可以参考documentation

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

0

这件作品: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);