0
我有一個操作項谷歌片與這些列:在片谷歌應用程序腳本分組數據以電子郵件
- A - ID - 串行#1,2,3等
- 乙 - 已分配 - 最新的行動項目被分配
- ç - 產品 - 項目或區域的短文本名稱
- d - 業主 - - 行動項目 - 行動項目
- 電子商務文字說明誰是分配給項目,這通常只是一個名字 像鮑勃L,或有時多人鮑勃/泰德
- 的F - 截止日期
- 摹 - 狀態 - 等待,在工藝等
- ^h - 最近更新 - 通過onEdit腳本
- 更新我 - 最後編輯者 - 通過onEdit腳本更新
- 的J - 所有者電子郵件 - VLOOKUP數據範圍得到 所有者(S)
- 的K電子郵件地址(S) - 最後提醒發送 - 發送的最後更新的電子郵件的日期 腳本
我是一個帶GAS的新手,所以我拼湊了片段,讓腳本爲每個操作項發送1封電子郵件給所有者,但我想按列E(所有者)對操作項進行分組,併發送一個電子郵件。我知道我需要一個嵌套循環,但我不知道如何繼續。 生成的電子郵件的格式需要是列A,B,D,F,G(至少)的表格。當前的腳本如下:
SCRIPT
function sendEmails() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 3; // First row of data to process
//var numRows = 12; // Number of rows to process *CHANGE AS NEEDED*
//var numItems = getRowsData(sheet, OpenItems);
var numItems = SpreadsheetApp.getActiveSheet().getRange("OpenItems").getValues();
var numRows = numItems[0]
// Fetch the range of cells A2:B3
var dataRange = sheet.getRange(startRow, 1, numRows, 11) // must encompass Column K (11)
// Fetch values for each row in the Range.
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var actionitemid = row[0];
var assignedon = Utilities.formatDate(new Date(row[1]), "GMT-05:00", "MM/dd/yy");
var assignedto = row[4];
var project = row[2];
var actionitem = row[3];
var duedate = Utilities.formatDate(new Date(row[5]), "GMT-05:00", "MM/dd/yy");
if (duedate == "12/31/69") { // no due date
var duedate = "TBD - please update!!" ;}
var status = row[6];
var emailAddress = row[9]; // Column J = 9 (starts at A=0
var subject = "Action Item Reminder - Project: " + project;
var sheetURL = SpreadsheetApp.getActiveSpreadsheet().getUrl();
var body = "A reminder to do the following:\n\n Project: "+project + "\n Due: "+duedate+"\nAssigned: "+assignedon+"\n Owner: "+assignedto+"\n Status: " + status + "\n\nACTION ITEM: "+actionitemid+"\n=============================\n"+actionitem+"\n=============================\n\nPlease advise if you will not meet the due date ASAP.\n\nAll action items can be found in the Action Item sheet:\n"+sheetURL+".";
var emailSent = row[11]; // Column D = 3
// if (oktosend == "Y") { // Send only for marked rows
var ok = emailAddress.length
if (emailAddress.length > 0) {
// Send email
// MailApp.sendEmail(emailAddress, subject, body);
// MailApp.sendEmail(emailAddress, "TEST", body);
MailApp.sendEmail({
to: emailAddress,
cc: "[email protected]",
subject: subject,
body: body
});
// Update EmailSent
var time = new Date();
time = Utilities.formatDate(time, "GMT-05:00", "MM/dd/yy, hh:mm");
sheet.getRange(startRow + i, 11).setValue(time); // Use column for EmailSent + 1 here getRange(startRow + i, X)
// Update oktosend to N
// sheet.getRange(startRow + i, 5).setValue('N'); // Use column for oktosend + 1 here getRange(startRow + i, X)
// Make sure the cell is updated right away in case the script is interrupted
SpreadsheetApp.flush();
} //oktosend<>N
}
}
輸出/結果
主題:操作項提醒 - 項目簡介:項目X
的提醒函做到以下幾點:
項目:Project X
截止日期:3/1/14
已分配:14年2月1日
擁有者:瑞克d
狀態:待定ACTION項:1
~~~~~~~~~~~~~~~~~~~ ~~~~
爲新的數據庫表上的項目X的數據需求 ~~~~~~~~~~~~~~~~~~~~~~~請指教如果你不能很快達到到期日。
所有行動項目可以在行動項目表中找到: 結束輸出
尋找在分組幫助和Gmail中產生的表。
看看(https://github.com/Jacobvdb/gdg-event-administration/blob/master/gdg/add_gdg.gs)本[GitHub上的腳本],尤其是respondToAdd功能它顯示如何使用html標記格式化電子郵件。所以你也可以使用一張表。 – Jacobvdb