You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何修改Google Sheets脚本删除2周及更早的过期数据条目

调整后可删除距今2周及更早条目的代码
function DeleteOldEntries() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("MASTER");
  var datarange = sheet.getDataRange();
  var lastrow = datarange.getLastRow();
  var values = datarange.getValues(); // 获取所有数据存入二维数组

  var currentDate = new Date(); // 今日日期
  // 计算2周前的截止日期:距今14天及更早的条目会被删除
  var cutoffDate = new Date(currentDate.getTime() - 14 * 24 * 60 * 60 * 1000);

  // 倒序遍历行,避免删除行导致索引错位
  for (i = lastrow; i >= 3; i--) {
    // 数组从0开始索引,row1对应values[0],此处默认日期在第3列(C列),对应索引2
    var tempDate = values[i-1][2];
    // 先判断是否为有效日期,再判断是否早于等于截止日期
    if (tempDate instanceof Date && !isNaN(tempDate.getTime()) && tempDate <= cutoffDate) {
      sheet.deleteRow(i);
    }
  }
}

核心修改说明

  • 新增2周阈值计算逻辑:通过当前时间戳减去14天对应的毫秒数,得到删除截止日期,匹配「删除2周及更早条目」的需求
  • 修复日期有效性校验:原代码tempDate!=NaN的判断逻辑无法正常识别无效日期,调整为类型校验+时间戳有效性校验,避免非日期内容触发误删
  • 优化判断条件:将原逻辑中与当前日期对比,调整为与2周前的截止日期对比,仅删除符合时间要求的条目

注意事项

  • 代码默认日期存放在第3列(C列),如果你的日期存储在其他列,请修改values[i-1][2]中的索引值(索引从0开始计数,B列对应索引1、D列对应索引3,以此类推)
  • 代码默认前2行为表头,从第3行开始遍历数据,如果你的表格只有1行表头,请将循环条件i >= 3修改为i >= 2

内容的提问来源于stack exchange,提问作者Lonestar Dads

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.26 14:15:01