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

使用Apps Script查找并隐藏名称含最新日期的Pipeline History工作表

隐藏最新日期的Pipeline History工作表

你已经完成了筛选目标工作表的第一步,接下来只需要提取日期、找出最新项并执行隐藏操作即可。以下是完整实现代码和说明:

完整代码

function hideLatestPipelineHistorySheet() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var allSheets = ss.getSheets();
  var searchText = "Pipeline History";
  var pipelineHistorySheets = allSheets.filter(s => s.getSheetName().includes(searchText));

  // 无匹配工作表时直接结束
  if (pipelineHistorySheets.length === 0) return;

  // 初始化最新工作表和日期
  var latestSheet = pipelineHistorySheets[0];
  var latestDate = getDateFromSheetName(latestSheet.getSheetName());

  // 遍历所有目标表,找出日期最新的
  pipelineHistorySheets.forEach(sheet => {
    var currentDate = getDateFromSheetName(sheet.getSheetName());
    if (currentDate > latestDate) {
      latestDate = currentDate;
      latestSheet = sheet;
    }
  });

  // 隐藏最新工作表
  latestSheet.hideSheet();
}

// 从工作表名称中提取日期并转为Date对象
function getDateFromSheetName(sheetName) {
  // 匹配mm-dd-yyyy格式的日期片段
  var dateParts = sheetName.match(/(\d{2})-(\d{2})-(\d{4})/);
  if (dateParts) {
    // 月份从0开始,需减1
    return new Date(dateParts[3], dateParts[1] - 1, dateParts[2]);
  }
  // 未匹配到日期时返回一个极早的日期,确保不会被选为最新项
  return new Date(0);
}

关键逻辑说明

  • 日期提取:通过正则表达式/(\d{2})-(\d{2})-(\d{4})/抓取工作表名称中的日期字符串,转换为可比较的Date对象。
  • 最新项筛选:遍历所有目标工作表,逐个比较日期,保留日期最大的工作表。
  • 隐藏操作:调用hideSheet()方法隐藏目标工作表,若需要禁止用户手动取消隐藏,可改用hideSheet({ skipUi: true })。

内容的提问来源于stack exchange,提问作者Cora Gadd

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.30 04:10:03