google-apps-script - 如何在谷歌脚本编辑器中的1到30(31,按月)单元格中自动设置整个月的日期和天数?

标签 google-apps-script google-sheets

这是显示 12 月日期和天数的图像。我需要在每个月的第一天自动备份一张工作表,但在备份工作表中创建的月份和日期应该更改为当前的。如图所示,在下个月的 12 月执行触发器时,它应该将 1 月的 1 更改为 31,并且下一列中也包含天数,如图所示。 (根据月份,应将日期设置为 30 或 31 或 2 月的 28)。我的备份表创建部分工作正常,只是我想知道如何设置此日期和天数。

enter image description here

最佳答案

创建本月工作表

代码:

function createThisMonth() {
  var ss=SpreadsheetApp.getActive();
  var shn=Utilities.formatDate(new Date(),Session.getScriptTimeZone() ,"MMM-yyyy");
  var sh=ss.getSheetByName(shn);
  if(!sh) {
    var sh=ss.insertSheet(shn,0);
  }
  var dA=[];
  var cA=[];
  var days=parseInt(Utilities.formatDate(new Date(new Date().getFullYear(),new  Date().getMonth()+1,0), Session.getScriptTimeZone(), "d"));
  for(var d=1;d<=days;d++) {
    var c1=Utilities.formatDate(new Date(new Date().getFullYear(),new Date().getMonth(),d),Session.getScriptTimeZone() , "d-MMM-yyyy");
    var c2=Utilities.formatDate(new Date(new Date().getFullYear(),new Date().getMonth(),d),Session.getScriptTimeZone() , "E");
    var c9=Utilities.formatDate(new Date(new Date().getFullYear(),new Date().getMonth(),d),Session.getScriptTimeZone() , "HH:mm:ss");
    dA.push([c1,c2,0,0,0,0,0,0,c9,'']);
    cA.push(['#ffffff','#ffffff','#ffff00','#ffff00','#ffff00','#ffff00','#ffff00','#ffff00','#00ff00','#ff0000']);
  }
  sh.getRange(1,1,dA.length,dA[0].length).setValues(dA);
  sh.getRange(1,1,dA.length,dA[0].length).setBackgrounds(cA);
}

运行此命令来创建触发器:

function createTriggerForcreateTheMonth() {
  if(!isTrigger('createThisMonth')) {
    ScriptApp.newTrigger('createThisMonth').timeBased().onMonthDay(1).atHour(1).create();
  }
}

辅助函数:

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

工作表:

enter image description here

关于google-apps-script - 如何在谷歌脚本编辑器中的1到30(31,按月)单元格中自动设置整个月的日期和天数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59123281/

相关文章:

google-apps-script - 资源 -> 当前项目触发器已从 Apps 脚本代码编辑器中消失

javascript - 找不到填充对象的函数 - 在控制台中有效,但不能作为宏

if-statement - 填写 ={ARRAYFORMULA()} 中的空白单元格

javascript - 将查找和替换限制为整个单词 google sheets .gs 函数

google-apps-script - Google 电子表格导出为 PDF 的边距参数

google-apps-script - 如何使用应用程序脚本粘贴公式?

google-apps-script - 如何在 Google Apps 脚本中使用 moment js?

xpath - 来自ImportXML的奇怪值

google-apps-script - 使用另一个脚本更新谷歌工作表脚本

javascript - 如何在 Google SpreadSheet 上列出 Google 云端硬盘文件夹中的所有文件