【问题标题】:Check a specific file in Google drive folder with Google Script使用 Google 脚本检查 Google 驱动器文件夹中的特定文件
【发布时间】:2020-07-24 16:54:08
【问题描述】:

我正在寻找实现以下目标的脚本。尝试使用谷歌搜索一些代码,但它们似乎无法满足我的要求。而且由于我是脚本新手,所以我有点迷失了。

  1. 检查 google sheet 中“Column H”中列出的名称,并在 Google Drive 中找到匹配的文件(需要提供路径)。
  2. 如果匹配,则在“I 列”中显示文件的超链接
  3. 脚本还应检查工作表中的所有行,并对每一行执行上述操作。
  4. 并停止检查列“K 列”是否为“完成”

提前谢谢你。

我尝试修改的代码如下;

  var searchFor ='title contains "2013"';
  var names =[];
  var files = DriveApp.searchFiles(searchFor);
  while (files.hasNext()) {
    var file = files.next();
    names.push(file.getName());
  }
  var folders = DriveApp.searchFolders(searchFor);
  while (folders.hasNext()) {
    var file = folders.next();
    names.push(file.getName());
  }
  for (var i=0;i<names.length;i++){
    Logger.log(names[i]);
  }

}```

【问题讨论】:

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


    【解决方案1】:

    这是我的解决方案。随意更改 H 列 ('H2:Hx') 的大小范围:

      function myFunction() {
      
      var folderId = '#FolderId';
      var folder = DriveApp.getFolderById(folderId)
      var extension = '.xlsx';
      
      var source = SpreadsheetApp.getActiveSpreadsheet();
      var sheet = source.getSheetByName('Sheet1');
      
      var RowSize=sheet.getRange('H:H').getValues().filter(String).length; //calculate max value of rows
      
      var file_name=sheet.getRange('H2:H'+RowSize).getValues()
      var file_checker=sheet.getRange('K2:K'+RowSize).getValues()
      
      for (i = 0; i < file_name.length; i++) {
      
        if (file_checker[i][0]=="Complete"){break;}  
        
      var files = folder.getFilesByName(file_name[i][0]+extension)
      
      
      while (files.hasNext()) {
          var childFile = files.next(); 
          var file_url =  childFile.getUrl() 
          sheet.getRange(i+2,9).setValue(file_url);
      } // while
    
    } //for
      
    } // function
    

    【讨论】:

    • 非常感谢。如何在不给出 H1:H20 等的情况下将其设置为一个范围,我可以使用 H:H var file_name=sheet.getRange('H2:H11').getValues()。我上面提到的第四个要求在哪一行处理?
    • 可以设置代码匹配没有文件扩展名的名称吗?我试过了,单元格的名称需要带有文件扩展名。合并G列和H列中的名称后是否可以匹配名称?
    • @Spear 我调整了代码以自动计算 H 列的大小。您不需要指定范围的结束行。我从 H2 开始,因为我在 H1 上有一个标题。
    • 如果您认为这是答案,请接受答案。
    • 非常感谢@Marios。非常好。我正在寻找这个 6-7 小时无法完成它。你是救世主。我该怎么做才能阻止函数检查列“K 列”是否有“完成”字样?以及如何搜索没有文件扩展名的文件名?并在两列中合并名称以进行文件名搜索?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-05
    • 2020-01-07
    • 1970-01-01
    • 2019-10-16
    • 1970-01-01
    • 1970-01-01
    • 2018-08-31
    相关资源
    最近更新 更多