2016-11-17 37 views
0

我想將電子表格中的電子郵件發送給多個人,但只能通過電子郵件將所有列中的信息發送給他們,而不僅僅是1.例如,我希望將B2:E2中的所有信息通過電子郵件發送給A2。如何修改此發送電子郵件代碼以將範圍擴展到多列?

我正在使用Google支持中提供的基本模板,我在下面附加了該模板。

所有更改,把我所造的都沒有奏效代碼:

function sendEmails() { 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    var startRow = 2; // 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];  // Second column 
    var subject = "Sending emails from a Spreadsheet"; 
    MailApp.sendEmail(emailAddress, subject, message); 
    } 
} 
+0

你嘗試過什麼樣的變化?目前你的問題太廣泛了 –

回答

0

我已經建立了一個電子表格,其中我認爲模仿表的結構,你正在尋找:

https://docs.google.com/spreadsheets/d/1S3fWaV4Sl4mIYjT-kMtOlP2V4xWSOpz721bxGWFuNqQ/edit

以下函數發出電子郵件:

  • One emai L到行
  • 電子郵件地址,在其他列
  • 列0,數據

代碼:

// The range of data including email columns 
// Example is set up with email in Column A, data in B and C 
// Headers on Row 1, data rows on 2 and 3. 
var DATA_RANGE = 'A2:C3'; 

function sendEmails() { 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    var data = sheet.getRange(DATA_RANGE); 
    var values = data.getValues(); 

    for (var i = 0, row; row = values[i]; i++) { 
    // Take email address from column A 
    var emailAddress = row[0]; 
    // Join the remaining columns, comma-separated (as an example) 
    var messageData = row.slice(1).join(', '); 
    MailApp.sendEmail(emailAddress, 'Sending emails from a Spreadsheet', messageData); 
    } 
} 

這是否覆蓋你想要做什麼?

1

對原始腳本做的改動很少,html在這方面是我們的朋友,它看起來會更好。

代碼:

function sendEmails() { 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    var startRow = 2; // First row of data to process 
    var numRows = 2; // Number of rows to process 
    var colWidth = 5; // column width, including first one 
    // Fetch the range of cells A2:E3, one email per row 
    var dataRange = sheet.getRange(startRow, 1, numRows, colWidth) 
    // Fetch values for each row in the Range. 
    var data = dataRange.getValues(); 
    var subject = "Sending emails from a Spreadsheet"; 
    for (i in data) { 
    var row = data[i]; 
    var emailAddress = row[0]; // First column 
    var message = '<body><div style="font-family:arial,sans;font-size:10pt"><p>welcome message</p>'; 
    message+= '<table style="border-collapse:collapse;" border = 1 cellpadding = 4><tr>'; 
    for(var n=1 ; n<row.length ; n++){ 
     message += '<td bgcolor="#EEF">'+row[n]+'</td>' 
    } 
    message += '</tr></table></div></body>'; 
    MailApp.sendEmail(emailAddress, subject, 'html only',{htmlBody:message}); 
    } 
} 

表例如:

enter image description here

電子郵件結果,第三行:

enter image description here

相關問題