javascript - 创建基本的 Google 脚本来复制 SS 并保存到我的驱动器上的特定文件夹

标签 javascript google-apps-script google-sheets google-drive-api

我有一个基本脚本,我发现它非常适合我的需求。我要复制的文件每天更新​​一次。更新它的人每天都会覆盖该文件,因此我尝试将该文件的历史副本存储到我的驱动器上的文件夹中。下面的脚本会复制文件并为我创建文件。不过,我正在努力完善一些东西。

    function DailyPerformanceCopy() {
ScriptApp.newTrigger('DailyPerformanceTrigger')
  .forSpreadsheet('ENTERSPREADSHEETIDHERE')
  .onEdit()
  .create();
  var date = new Date();
Logger.log(Utilities.formatDate(date,'America/Chicago', 'MMMM dd, yyyy'));
  var ss = SpreadsheetApp.openById("ENTERSPREADSHEETIDHERE");

   //Make a copy of the template file
  var documentId = DriveApp.getFileById('ENTERSPREADSHEETIDHERE').makeCopy().getId();

  //Rename the copied file
  DriveApp.getFileById(documentId).setName('Performance ' + date);
}

  1. 我希望复制的文件仅保存为“性能 + 当前月、日、年”。 (2020 年 3 月 16 日的表演。明天的副本将保存为 2020 年 3 月 17 日的表演等)

当前保存为:Performance Mon Mar 16 2020 14:45:09 GMT-0400(东部夏令时间)

  • 它当前被保存到我的驱动器的根目录中。我希望将其保存到我创建的名为“Performance”的文件夹中

  • 我不确定明天文件更新后是否会执行。我假设是这样?

  • 最佳答案

    function DailyPerformanceCopy() {
      const ss=SpreadsheetApp.openById("**************ENTERSPREADSHEETIDHERE******************");
      const dfldr=DriveApp.getFolderById('************Enter Folder Id***************')
      if(notTrigger('DailyPerformanceTrigger')) {ScriptApp.newTrigger('DailyPerformanceTrigger').forSpreadsheet(ss.getId()).onEdit().create();}
      const ts=Utilities.formatDate(new Date(),'America/Chicago', 'MMMM dd yyyy');
      const file=DriveApp.getFileById(ss.getId());
      const name=Utilities.formatString('Performance %s', ts);
      file.makeCopy(name, dfldr);  
    }
    
    function notTrigger(funcname) {
      const tA=ScriptApp.getProjectTriggers();
      for(var i=0;i<tA.length;i++) {if(tA[i].getHandlerFunction()=='funcname') {return true;}}
      return false;
    }
    

    关于javascript - 创建基本的 Google 脚本来复制 SS 并保存到我的驱动器上的特定文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60711815/

    相关文章:

    google-apps-script - 在收到的电子邮件上触发的 Google gmail 脚本

    javascript - index.addObjects 抛出使用错误(Algolia)

    javascript - JQuery 从 DualListBox 中选择所有选项值

    python - 谷歌应用程序脚本 - "message": "Requested entity was not found." with devMode = false

    javascript - 在 Google 脚本中保存 PDF "Blobs"

    java - 如何通过 Google V4 Java API 获取工作表列表

    javascript - 如何在电子表格中按列检索数据

    google-sheets - 将数据从 Google 表格流式传输到 BigQuery 以在 Tableau 中进行可视化

    javascript - 在 Javascript 中对多维 JSON 对象进行排序

    c# - 如何在 jQuery 函数中使用 Windows Phone 8 C# 列表