javascript - 使用谷歌应用程序脚本滚动电子表格到今天的日期

标签 javascript google-apps-script google-sheets

我的 Google 电子表格包含以下列:

  • 答:日期
    1. 2020年7月16日
    2. 2020年7月17日
    3. 2020年7月18日
  • B、C、D:其他信息

我需要一个脚本,当您打开文档时,它会自动滚动表格到今天的日期。

最佳答案

转到今天:

function gotoTodaysDate() {
  const ss=SpreadsheetApp.getActive();
  const sh=ss.getSheets()[0];//most left sheet
  const shsr=2;//data start row
  const shsc=1;//date column
  const vs=sh.getRange(shsr,shsc,sh.getLastRow()-shsr+1,1).getValues();
  const dates=vs.map(function(r){return r[0];});//flattened
  const td=Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "dd.MM.yyyy");//current date string
  const idx=dates.indexOf(td);
  sh.getRange(idx+shsr,1).activate();
}

可安装的 onOpen 触发器:

function createOnOpenTrigger() {
  const ss=SpreadsheetApp.getActive();
  if(!isTrigger('gotoTodaysDate')) {
    ScriptApp.newTrigger('gotoTodaysDate').forSpreadsheet(ss.getId()).onOpen().create();
  }
}

辅助函数: 防止您为给定函数创建多个触发器

function isTrigger(funcName){
  var r=false;
  if(funcName){
    var allTriggers=ScriptApp.getProjectTriggers();
    for (let i=0;i<allTriggers.length;i++){
      if(funcName==allTriggers[i].getHandlerFunction()){
        r=true;
        break;
      }
    }
  }
  return r;
}

关于javascript - 使用谷歌应用程序脚本滚动电子表格到今天的日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62937016/

相关文章:

javascript - 在 javascript 中正确使用 this 指针来实现 Knockout.js 中的回调

javascript - 将 ES5 数组方法与 ES6 生成器一起使用

Javascript onblur 影响从文本框输入到 iframe 吗?

javascript - 如何从工作表计算谷歌应用程序脚本的持续时间?

javascript - 为什么此代码返回 3 维数组

google-apps-script - Google 应用程序脚本触发器不起作用

google-apps-script - 如何通过 Apps 脚本在 Google 表格中显示 "Clear Format"

javascript - 如何在同一网页中显示不同的视频弹出窗口?

multithreading - 如何使用Google表格的Google App脚本进行简单的多线程处理

ios - 在 iOS 中将 CSV 上传(转换为电子表格)到 Google Drive?