Google应用脚本会返回正确的值+多个不需要的逗号

时间:2015-02-04 10:42:48

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

我有简单的脚本来根据电子表格中的数据发送电子邮件。

第1列是主题。第2,3,4,5列是正文。

问题是 - 我在电子表格中的北斗星 - 电子邮件末尾发送的逗号脚本越多。如果这是第一行 - 没有额外的逗号。第2行 - 2个逗号,第3行 - 4个逗号等等。

如何摆脱这些不需要的逗号? 我很抱歉这个新手问题。

代码是

function sendEmails() {
  var time = new Date;
  Logger.log(time);
  var sheet = SpreadsheetApp.getActiveSheet();
  var hojaRegistro = SpreadsheetApp.getActive();
  var activeRow = hojaRegistro.getActiveCell().getRow();
  var subject = sheet.getRange(activeRow, 1, activeRow, 1).getValues();
  var message = sheet.getRange(activeRow, 2, activeRow, 5).getValues();
  MailApp.sendEmail('my@mymail.com', subject, message);
  sheet.getRange(activeRow, 6).setValue('E-mail sent on ' +time);
  SpreadsheetApp.flush();
}

function onOpen() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var entries = [{
    name : "Send Email",
    functionName : "sendEmails"
  }];
  sheet.addMenu("Script Center Menu", entries);
};

1 个答案:

答案 0 :(得分:1)

如果要将活动行中的第一列作为主题,将列2,3,4,5作为正文,则必须从所有列的同一行检索范围。为此,您必须将第3个参数设为1而不是activeRow(var message = sheet.getRange(activeRow, 2, 1 , 5).getValues();)

对代码进行了一些更改。

试试这个:

function sendEmails() {
  var time = new Date;
  Logger.log(time);
  var sheet = SpreadsheetApp.getActiveSheet();
  var hojaRegistro = SpreadsheetApp.getActive();
  var activeRow = hojaRegistro.getActiveCell().getRow();
  var subject = sheet.getRange(activeRow, 1, activeRow, 1).getValues();
  var message = sheet.getRange(activeRow, 2, 1 , 5).getValues();
  MailApp.sendEmail('my@mymail.com', subject, message);
  sheet.getRange(activeRow, 6).setValue('E-mail sent on ' +time);
  SpreadsheetApp.flush();
}

function onOpen() {
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var entries = [{
    name : "Send Email",
    functionName : "sendEmails"
  }];
  sheet.addMenu("Script Center Menu", entries);
}

希望有所帮助!