excel - 当特定列更新为“是”并且电子邮件 ID 从同一工作表中的另一列中获取时,Google 工作表的电子邮件触发器
问题描述
我有多个将每天更新的行和列,我希望触发电子邮件以从同一张表的另一列中获取邮件 ID。
例如,我在 C 列中有很多电子邮件 ID [不能提及特定范围,因为数据将每天添加],当 H 列的值标记为“是”时,C 列中相应行的邮件 ID 必须采取和电子邮件应该被触发到该ID。我尝试了多个脚本,但它不起作用。
解决方案
为您的脚本启用 Gmail 服务
- 转到您的工作表,然后单击工具 > 脚本编辑器
- 在脚本编辑器中,单击资源 > 高级 Google 服务...启用“Gmail API”并单击确定
代码
将以下代码复制并粘贴到工作表的脚本编辑器中(并根据需要进行任何修改):
function sendEmail(dest, data) {
var messageBody = 'Hello, there has been a new release:\n\n' + JSON.stringify(data);
GmailApp.sendEmail(dest, 'Automated email from sheet', messageBody);
}
function onEditTrigger(e) {
var range = e.range;
if (range.columnStart == 8 && e.value == 'YES') {
// Prepare the email
var row = range.getSheet().getRange(e.range.rowStart, 1, 1, 8).getValues()[0];
var headers = range.getSheet().getRange(1, 1, 1, 8).getValues()[0];
var dest = row[1];
var data = {};
for (var i=0; i<8; i++) {
data[headers[i]] = row[i];
}
sendEmail(dest, data);
}
}
该代码将获取已修改行的前 8 列,并将它们与标题一起以 JSON 格式发送到 B 列中指定的电子邮件。您可以在此处查看我用于测试的电子表格。我收到的电子邮件如下所示:
将 onEditTrigger 函数设置为可安装触发器
- 在工作表的脚本编辑器中,单击时钟图标(“当前项目的触发器”)
- 单击添加触发器按钮
- 选择onEditTrigger函数作为要运行的函数,并选择On edit作为事件类型(示例触发器配置)并点击保存
现在,每次修改工作表时,上面的代码都会运行,如果合适,发送消息。
推荐阅读
- react-native - package.json 依赖和 build.gradle 依赖的版本关系?
- blazor - 如何在 blazor 中获取窗口宽度
- python - Keras fit_generator - ImageDataGenerator 行为
- mobx-state-tree - MST:用自己的孩子定义模型
- java - 根据 bean 声明在 JSON 响应中的正确顺序
- c - 如何获取存储在寄存器指向的地址的指令
- dataweave - 在数据编织语言中准确使用括号“()”的位置
- c# - 如何检测对不可见组件的点击
- vue.js - 什么时候在 Vue.js 中使用函数式组件?
- c++ - C++ - 将对象(如字符串)映射到表中的成员函数的正确方法