javascript-根据最后一行的条件触发电子邮件警报不起作用
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了javascript-根据最后一行的条件触发电子邮件警报不起作用,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2338字,纯文字阅读大概需要4分钟。
内容图文
![javascript-根据最后一行的条件触发电子邮件警报不起作用](/upload/InfoBanner/zyjiaocheng/695/e74136d462b54b468b9a9505c2ea9da9.jpg)
我尝试构建脚本,但是存在一些问题.表格格式是2列,分别是日期和值.这些是需要:
理想状态
>在Google表格中获取最后一个填充行(今天的日期),称为“测试”.
>在该行中检查F列中的值是否大于0.5.
>如果大于0.5,则触发电子邮件.
>在电子邮件正文中,应注明“在[日期]找到结果”.
这是我的出发点,但没有产生我想要的.这些是问题:
当前状态
1,脚本抓取过去F列大于0.5的每一行.我只想检查今天(那将是最后一行).它不应该浏览过去的所有内容.
2.电子邮件正文指出:“在[行号]上找到结果”.这没有任何意义.我要显示日期,而不是行号.
这是当前代码.请帮忙.
function readCell() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName("test");
var values = sheet.getRange("F3:F").getValues(); //this has the values
var date = sheet.getRange("D3:D").getValues(); // this has the date
var results = [];
for(var i=0;i<values.length;i++){
if(values[i]>=0.5)
{
results.push("Result found on:" +(i+3));
}
}
MailApp.sendEmail('blabla@gmail.com', 'Alert', results.join("\n"));
};
假设sheet.getLastRow()将忽略#DIV / o,则此上下文中的最后一行是第217行,而不是218行!值.参见截图.
最新更新
当前错误与“ toDateString”相关.我认为我的Google表格可能落后一天.因此,今天是1月10日,我的Google表格中的最后一行是1月9日.我认为这就是错误发生的原因.你确定吗?在这种情况下,如何将其更改为今天1天?
见下文.
解决方法:
这是检查最后一行的方法:
function readCell() {
var sheet = SpreadsheetApp.getActive().getSheetByName('test');
var lastRow = sheet.getLastRow();
var value = sheet.getRange('F' + lastRow).getValue();
var date = sheet.getRange('D' + lastRow).getValue();
if (value >= 0.5) {
var result = 'Result found on: ' + date;
MailApp.sendEmail('blabla@gmail.com', 'Alert', result);
}
};
看到您的数据后,我认为下面的代码会更适合您.
function readCell() {
var sheet = SpreadsheetApp.getActive().getSheetByName('test');
var dates = sheet.getRange('D1:D').getValues();
var date = null;
var dateRow = 0;
var dateCount = dates.length;
var yesterday = new Date();
yesterday.setDate(yesterday.getDate() - 1);
var yesterdayString = yesterday.toDateString();
for (dateRow; dateRow < dateCount; ++dateCount) {
date = dates[dateRow];
if (date instanceof Date) {
date = date.toDateString();
if (date === yesterdayString) {
++dateRow;
// To account for zero-based array
break;
}
}
}
var value = sheet.getRange('F' + dateRow).getValue();
if (value >= 0.5) {
var result = 'Result found on: ' + date;
MailApp.sendEmail('blabla@gmail.com', 'Alert', result);
}
};
内容总结
以上是互联网集市为您收集整理的javascript-根据最后一行的条件触发电子邮件警报不起作用全部内容,希望文章能够帮你解决javascript-根据最后一行的条件触发电子邮件警报不起作用所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。