javascript - 删除电子表格中今天日期应用程序脚本之前的日期

标签 javascript google-apps-script google-sheets

我需要删除日期在今天之前的行。

我有这样的东西:

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];

var data = sheet.getDataRange().getValues(); 

var today = new Date();
var date = Utilities.formatDate(new Date(today), "GMT", "yyyy-MM-dd HH:mm:ss");
// logs date 2013-06-12 19:23:53

for(n=1;n<data.length;++n){
  var start = data[n][0];
  //logs start  Wed Jul 10 19:00:00 GMT-07:00 2013
}

谢谢!

最佳答案

您没有显示任何数据,所以我猜测一下。

电子表格中日志的日期格式似乎如下所示:

Wed Jul 10 19:00:00 GMT-07:00 2013

Google 电子表格不会自动将该格式识别为日期。然而,创建一个 javascript Date 对象是可以的,所以我们可以这样做来进行比较,如下所示:

new Date("Wed Jul 10 19:00:00 GMT-07:00 2013")

您首先将电子表格数据放入数组中,这很好 - 速度很快,而且我们可以一步写出最终数据。要从数组中删除行,请使用 Array.splice()方法。这是生成的脚本:

function killOldLogs() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];

  var data = sheet.getDataRange().getValues(); 

  var today = new Date();

  // Loop over whole range, removing rows that are too old.
  // Leaves row 0, assuming it's a header row.
  for(n=data.length-1;n>0;--n){
    if (new Date(data[n][0]) < today) {
      data.splice(n,1);
    }
  }
  sheet.clearContents(); // Get rid of old contents, then write new
  sheet.getRange(1, 1, data.length, data[0].length).setValues(data);
}

关于javascript - 删除电子表格中今天日期应用程序脚本之前的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17073671/

相关文章:

javascript - 发送带有附件的Google表格电子邮件ERROR

javascript - 我可以在不离开的情况下更改地址栏中的文本吗?

javascript - 使用 Reactjs DatePicker 更新状态不起作用

javascript - 使用递归对 1 和给定数字之间的数字求和 - Javascript

javascript - 无法从 Google 脚本返回 2D 数组以在我的 HTML 中使用

javascript - XmlService 和 importxml 的区别

javascript - 将 CodePen JavaScript 放在 <head> 而不是 </body>

javascript - 使用谷歌应用脚​​本创建按钮和输入字段

javascript - 创建一个带有谷歌表格链接的下拉菜单?

google-sheets - 如何计算列中包含表情符号的所有单元格?