在特定时间通过电子表格发送电子邮件数据

时间:2013-02-21 21:19:51

标签: google-apps-script google-sheets

我是Google Scripts的新手,我需要找到一种方法将Google电子表格中收集的数据通过电子邮件发送到Gmail帐户。

我有一个Google表单设置,可以记录全天的客户服务统计信息。响应将收集到电子表格中。电子表格每天都会被清除,以备第二天的回复。我需要找到的是一种方法,可以在每天结束时通过电子邮件收集所有收集的回复。

从我到目前为止所做的搜索,我相信需要getRange和getValues,但我不知道如何制作代码来检索工作表上的所有数据。电子表格总是有4个设置列,但生成的行数取决于每天收集的统计信息的数量。我发现getLastRow可以解决这个问题,但是如何将它与getRange和getValues一起使用?

我尝试编写一个非常基本的脚本来完成这项工作,但它只是通过电子邮件发送A1单元格中的值。我需要所有的数据。我使用时间触发器来控制它何时运行。我做错了什么?

function emailStats() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var dataRange = sheet.getActiveRange().getValues();
  var subject = "Daily Report of Customer Service Statistics";
  MailApp.sendEmail("pnnmeetingroom@gmail.com", subject, dataRange);

}

1 个答案:

答案 0 :(得分:0)

的变化:

代码:

function emailStats() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getActiveSheet();
  var data = sheet.getDataRange().getValues();
  var subject = "Daily Report of Customer Service Statistics";
  MailApp.sendEmail("pnnmeetingroom@gmail.com", subject, createTable(data));
}