2012-07-19 200 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);