google-apps-script - 将从 Google 表格通过电子邮件发送数据的脚本
问题描述
我创建了一个脚本来通过电子邮件发送 Google 表格中特定范围内的数据,但这些数据一起运行。我需要对脚本进行哪些更改,以便数据在电子邮件正文或表格格式中以单独的行排列?
数据位于单元格中A5:B16
,实际上是从电子表格的其他部分提取过滤数据的公式。过滤器是基于日期的过滤器,因此单元格中返回的数据A5:B15
每周都会变化。我想在本周初收到一封包含新数据的电子邮件。代码“有效”,但难以阅读。我需要对脚本进行哪些更改,以便将数据安排在电子邮件正文中的单独行中?另外,如何格式化日期?
function sendEmails() {
var recipient = 'john.doe@gmail.com';
var subject = "New Hires starting this week";
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 5;
var numRows = 10;
var dataRange = sheet.getRange(startRow, 1, numRows, 2);
var message = dataRange.getValues();
MailApp.sendEmail(recipient, subject, message);
}
这是电子邮件的外观:
姓名,结束日期,Jane Doe,2019 年 9 月 27 日星期五 00:00:00 GMT-0400 (EDT),约翰汉考克,2019 年 9 月 27 日星期五 00:00:00 GMT-0400 (EDT),Joe Smith,2019 年 9 月 27 日星期五00:00:00 GMT-0400 (EDT),,,,,,,,,,
解决方案
function sendEmails() {
var recipient = 'john.doe@gmail.com';
var subject = "New Hires starting this week";
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 5;
var numRows = 10;
var dataRange = sheet.getRange(startRow, 1, numRows, 2);
var message = dataRange.getValues();
var s='';
for(var i=0;i<message.length;i++) {
var dt=Utilities.formatDate(new Date(message[i][1]),Session.getScriptTimeZone(),"MM-dd-yyyy");
s+=Utilities.formatString('%s: %s\n',message[i][0],dt);
}
GmailApp.sendEmail(recipient, subject, s);
}
我假设您在第 1 列中有元数据,在第 2 列中有数据。如果这不正确,请告诉我它可能很容易修复。
推荐阅读
- python - 获取所选项目的详细信息
- sql - 协助:ORA-00907:缺少右括号
- c - 从子 COM 对象获取父 COM 对象
- mongodb - 通过 for 循环或 foreach 保存在 mobgodb 模式中,每个项目确实节省了不止一次
- symfony - API平台和Symfony,多个实体管理器和一些api操作的动态连接问题
- c# - 如何在C#中调用另一个类的私有方法
- android - 构建命令失败。使用参数执行进程 C:\Users\user\AppData\Local\Android\Sdk\ndk\21.0.6113669\ndk-build.cmd 时出错
- flutter - 我在颤振http中需要帮助,但我不知道我在做什么
- elasticsearch - 带有弹性搜索数据库的 CubeJS 仪表板
- angular - 除非数据已更改,否则防止角度组件重新渲染