从Google Spreasheet发送电子邮件不起作用

时间:2019-03-20 15:20:31

标签: google-apps-script

我在电子表格上附加了Google表单。每次通过表单将数据提交到电子表格中。然后,电子表格应该会自动将电子邮件发送给多个人,但无法正常工作。

这是我的代码:

function myFunction(row) {
  var sheets = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = sheets.getSheets()[0]; // Form Responses 1
  var columnName = sheet.getRange("A1:S1").getValues();
  var dataRange = sheet.getRange(row);
  var data = dataRange.getValues();

  var responseObj = {};
  var carId = "";

  for (var i = 2; i < columnName[0].length; i++) {
    var key = columnName[0][i];
    var value = dateFormat(data[0][i],key);
    responseObj[key] = value;
    if(key === "Car ID"){
      carId = value;
    }
  }

  var htmlBodyLoc = doGet(responseObj);

  MailApp.sendEmail({
    to: 'person.one@gmail.com,person.two@gmail.com,person.three@gmail.com',
    subject:'Car Inspection - ' + outletId + ' '  + new Date(), 
    htmlBody: htmlBodyLoc,
  });
}

我实际上在此行出现错误: var dataRange = sheet.getRange(row);

谢谢。

1 个答案:

答案 0 :(得分:0)

您可以通过4种方式致电sheet.getRange()

getRange(row, column) 它适用于单个单元格范围。 如果您来自VBA,则这是最接近工作表的单元格。

getRange(row, column, numRows) 这样,您可以创建一系列单列和多行,有时很有用

getRange(row, column, numRows, numColumns) 这是通过编程实现的方法。 例如sheet.getRange(1,1,2,2)将为您提供范围A1:B2

最后还有getRange(a1notation),您可以像sheet.getRange("A1:B2")

那样使用

如果您尝试获取单个数据单元,也许您可​​以更改 var dataRange = sheet.getRange(row);var dataRange = sheet.getRange(row, yourFixedColumn); yourFixedColumn是列E的索引为1的整数,例如列A = 1 否则,您必须将传递的参数行更改为符合上述方法的内容。