谷歌脚本 - 创建要插入电子邮件的值列表

时间:2016-12-09 05:58:48

标签: javascript google-apps-script google-sheets

我是Google Script和Javascript的新手。但是我试图通过电子邮件发送从电子表格中提取的文件名列表。名称在我的工作表的一列中,我创建了一个名为" newfiles"的变量,它只提取了我需要的值。到现在为止还挺好。



function sendUpdate()
{
 
  //set up variables
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("finishedfiles");
  var range = sheet.getDataRange().getValues();
 
    for (n = 0; n < range.length; n++)
      {
      var newfiles = range[n][1];
      }
&#13;
&#13;
&#13;

问题是该脚本会为该范围内的每个值发送一封电子邮件。

&#13;
&#13;
var startRow = 2;
  
for (var i = 0; i < range.length; i++)
if (startRow + i , 5 != '')
      {
       MailApp.sendEmail
       {to: "me@gmail.com", 
       subject: "list of files", 
       htmlBody: "Here's your list:<br>" + newfiles +
       "<br>This message was sent automatically."});
       }
&#13;
&#13;
&#13;

我只想发送一封电子邮件,所以我需要将变量中的值组合成一个可以插入到我的邮件中的文本字符串。

我觉得这是一个n00b问题,但我不能为我的生活弄明白。

1 个答案:

答案 0 :(得分:1)

好吧,如果您想要一封大邮件,则不得为该范围内的每个文件名调用MailApp。

function sendUpdate() {
  var sheet = SpreadsheetApp
      .getActiveSpreadsheet()
      .getSheetByName("finishedfiles");

  var range = sheet.getDataRange().getValues();

  var filenames = range
    .map(function(row) {return row[1];}) // Extract the filenames column
    .join("<br>");                       // Combine them all into a string

  MailApp.sendEmail(
    {to: "me@gmail.com", 
     subject: "list of files", 
     htmlBody: "Here's your list:<br>" + filenames +
     "<br>This message was sent automatically."});
}

if (startRow + i , 5 != '')做什么?是不是总是评价为true