javascript - 当 shell 中的日期与今天的日期匹配时为整行着色

标签 javascript google-apps-script google-sheets

function colorEntireRowGreenWhenDateOfEventMatchesCurrentDate() {

  var data = SpreadsheetApp.getActiveSheet();
  var dateColumn = data.getRange("C2:C15").getValues();
  var todaysDate = new Date();
  Logger.log(data)

  for (i=0; i=dateColumn.length; i++) {
    if (dateColumn[i] = todaysDate) {
      data.setTabColor("#3c643c");
    }
  }
}

简单的请求。当 C 列中的日期条目与今天的日期匹配时,我想将整行涂成绿色。

最佳答案

您的代码存在多个问题。

首先,你的日期比较有误

 if (dateColumn[i] = todaysDate) {

代替

 if (dateColumn[i] == todaysDate) {

此外,比较日期的最佳方法是使用 getTime() method 来比较时间。 .另请参阅此 SO 问题:Compare two dates with JavaScript

您尝试使用 Sheet.setTabColor(String) method当您尝试获取 Range.setBackground(String) method 时,它会修改工作表的选项卡颜色或 Range.setBackgroundRGB(red, green, blue) method .

解决方法:

function colorEntireRowGreenWhenDateOfEventMatchesCurrentDate() {

  var data = SpreadsheetApp.getActiveSheet();
  var range = data.getRange("C2:C15");
  var values = range.getValues();
  var today = new Date();
  var todaysDate = new Date(today.getFullYear(), today.getMonth(), today.getDate());
  Logger.log(data);
  range.setBackground(null);

  for (var i in values) {
    var d = values[i][0];
    if (d.getTime() === todaysDate.getTime()) {
      var row = parseInt(i) + 1;
      data.getRange(range.getCell(row, 1).getRow(),1,1,data.getMaxColumns()).setBackground('#3c643c');
    }
  }
}

关于javascript - 当 shell 中的日期与今天的日期匹配时为整行着色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46220238/

相关文章:

google-apps-script - 通过 Google App 脚本将 CSV/Excel 文件上传为工作表

mysql - 如何从 google apps 脚本 .gs 返回 jdbc ResultSet 到 html 文件

javascript - 在 Google 应用程序脚本中运行的范围输入

javascript - Rails - 使用 javascript 创建的远程链接

javascript - 你可以使用 CSS 创建一个 3d 凸起的盒子还是你需要使用图像?

javascript - HTML5 图片预加载

javascript - 谷歌脚本: Script to create calendar event runs without error but does nothing

xml - 如何使用 XmlService 检索值?

google-apps-script - 如何将 Google Apps 脚本添加到使用 API 创建的电子表格中?

javascript - 区分东京和首尔时区