根据最后一行的条件触发电子邮件警报“不工作”

2024-04-05

我尝试构建一个脚本,但存在一些问题。表格格式为两列,即日期和值。这些是需求:

理想状态

  1. 抓住 Google 表格中名为“test”的最后一个填充行(今天的日期)。
  2. 如果 F 列中的值大于 0.5,请检查该行。
  3. 如果大于 0.5,则触发电子邮件。
  4. 在电子邮件正文中,应注明“结果于[日期]找到”。

这是我的出发点,但它并没有产生我想要的东西。这些是问题:

当前状态

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('[email protected] /cdn-cgi/l/email-protection', 'Alert',     results.join("\n"));
};

此上下文中的最后一行是第 217 行,而不是第 218 行,假设sheet.getLastRow() 会忽略#DIV/o!价值观。请参阅屏幕截图。

最新更新
当前错误与“toDateString”相关。我认为这可能与我的 Google Sheet 落后一天有关。所以,今天是 1 月 10 日,我的 Google 表格中的最后一行是 1 月 9 日。我认为这就是错误发生的原因。你可否确认?那么,如何将其更改为today-1天呢?

See below.


检查最后一行的方法如下:

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('[email protected] /cdn-cgi/l/email-protection', '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('[email protected] /cdn-cgi/l/email-protection', 'Alert', result);
    }
};
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

根据最后一行的条件触发电子邮件警报“不工作” 的相关文章

随机推荐

  • 断言失败 - 训练 Tesseract

    我正在尝试使用 Serak Tesseract Trainer 训练 tesseract https code google com p serak tesseract trainer https code google com p ser
  • JBoss - 如何在 jboss-deployment-struct 中排除 javax.validation?

    我有使用 Jersey REST 的 war 它可以在 tomCat 中运行 但我需要在 JBoss 6 4 0 中运行我的 war 这会导致异常 java lang RuntimeException java lang NoSuchMet
  • Xamarin Forms - 如何在 ListView 中显示/绑定列表?

    我正在创建一个购物车 用于存储所有订单 如何在 ListView 中显示列表 我尝试做这些代码 客户订单 cs public class CustomerOrder public string menuname get set public
  • 如何从一条路径中减去另一条路径?

    所以 我有一个基本路径和一个新路径 新路径包含在基本路径中 我需要看看新路径有什么不同 就像我们有 home 一样 新路径是 home apple one 我需要从中获取 apple one 注意 当我从 homePath diffPath
  • Spring @ContextConfiguration 如何为 xml 放置正确的位置

    在我们的项目中 我们正在编写一个测试来检查控制器是否返回正确的模型视图 Test public void controllerReturnsModelToOverzichtpage ModelAndView modelView new Mo
  • 并发程序不同制作方式的差异

    有什么区别 开始一个新线程 使用 TPL 使用后台工作者 所有这些都创建了并发性 但是它们之间的低级差异是什么 无论如何 这 3 个线程都会创建线程吗 Thanks 它们都在内部使用线程 区别在于每个 API 的抽象级别以及线程的使用方式
  • 在 Flask 框架中向用户发送文件会出现 UnicodeEncodeError

    我想在用户单击适当的按钮时向他发送一个文件 并且我正在起诉以下内容 Prepare selected file for download send file home nikos wsgi static files filename 但无论
  • 在不同的服务器上执行相同的 php 脚本的最佳方法是什么?

    我有一个名为 MY SCRIPT 的脚本 由于性能问题 我需要将其上传到不同的服务器 A B 和 C 上 该脚本对于所有服务器都是相同的 减少维护的最佳方法是什么 我在想 你怎么看待这件事 使用部署工具自动将此文件部署到多个服务器 就像是A
  • Facebook OAuth2 中 access_token 的长度是多少?

    我在 Google 和 StackOverflow 上搜索以找到问题的答案 但找不到 我想将 access token 存储到我的数据库中以供离线访问 并且我想确保指定列的正确长度 我什至无法确定它只是一个数字还是数字和字符串的混合 我在
  • Spring 自动添加“X-Total-Count”标头

    我正在为我的 Web 应用程序使用 admin on rest UI 它有以下限制 注意 jsonServer REST 客户端期望 API 包含 响应 GET LIST 调用中的 X Total Count 标头 该值必须 是集合中资源的
  • Android:BLE如何读取多个Characteristic?

    用于读取某些特征的 Android BLE API 方法本质上是异步的 当您请求某些值时 将调用您的 GATT 回调方法 如果您请求多个读取特征值 它只会丢弃其他值 直到它不满足第一个请求为止 如果有人知道我们应该采用哪种设计模式来解决这个
  • 链接时,“获取您需要的内容”和“获取全部”(-Wl,--whole-archive)之间是否存在某种关系?

    我有这个库 其中涉及一些需要在之前运行的静态初始化代码main 如果您只是将所有翻译单元编译在一起 那么一切都很好 但是如果我提供静态库 a文件 并让用户将他们的应用程序链接到它 链接器只是忽略执行静态初始化的符号 或者 我可以让链接器拾取
  • 检查文件夹,然后在 Python 中创建一个隐藏文件夹

    我无法让这个东西为我的一生创建这个隐藏文件夹 它完成时没有任何错误 只是无法让它创建文件夹 import os import ctypes import subprocess import urllib from subprocess im
  • 问:如何从表中排除人名

    我正在尝试使用 bigquery 通过 gdeltv2 数据集查找 4 个以色列新闻网站中被提及最多的 10 个人 我成功获得了被提及最多的 10 个人 现在我想从前 10 名名单中排除两个人 Maccabi Haifa 和 Reuben
  • 故障转移组辅助实例上的 Azure SQL 托管实例 CLE 的解密问题

    我们有一个带有主实例和辅助实例的 Azure SQL 托管实例故障转移组设置 我遇到的问题是我们对某些数据库表列使用单元格 列 级加密 CLE 我有限的理解是 这些的解密取决于服务主密钥 我认为问题在于数据库主密钥使用服务主密钥进行加密 然
  • Mac OS X 上的 Mono - 并行 HTTP 下载限制为 2

    我正在使用 Mono 开发一个可以同时下载多个文件的程序 适用于 Mac OS X 和 Debian 然而 尽管我使用了构造函数 但我只能同时下载 2 个文件new RollingDownload 10 我正在使用的代码是这样的 using
  • 如何改进MySQL中的Limit子句

    我有posts有 10k 行的表 我想通过它创建分页 因此 我为此目的有下一个查询 SELECT post id FROM posts LIMIT 0 10 When I Explain该查询我得到下一个结果 所以我不明白为什么 MySql
  • NetBeans 14 - 无法自动设置 JavaFX 平台

    我多年来一直在研究这个问题 但我发现的所有教程似乎都不起作用 当我尝试使用 JDK 18 和适用于 Windows 的最新 JFX 下载在 Netbeans 14 中创建新的 JavaFX 项目时 https gluonhq com pro
  • 如何在 iOS 4 上获取更新 NSUserDefault?

    我正在开发一个iPhone应用程序 由于多任务 我在iOS4上遇到了问题 此应用程序具有在 Settings bundle 中定义的默认设置 如果我运行我的应用程序 那么我就会离开它 所以它会进入后台 我将更改设置并重新启动应用程序 它退出
  • 根据最后一行的条件触发电子邮件警报“不工作”

    我尝试构建一个脚本 但存在一些问题 表格格式为两列 即日期和值 这些是需求 理想状态 抓住 Google 表格中名为 test 的最后一个填充行 今天的日期 如果 F 列中的值大于 0 5 请检查该行 如果大于 0 5 则触发电子邮件 在电