首页 > 解决方案 > 如何根据 6 位数项目编号列表检查共享谷歌驱动器上的文件名列表并自动选中一个框

问题描述

每个标题。我有一个带有 6 位数项目编号的产品列表。我需要将其与引用这些产品的文件名列表进行交叉引用,并在它们存在时自动勾选复选框。6 位数字可以出现在文件名中的任何位置。

我尝试使用现有脚本将文件名列表(包括在子文件夹中)导入另一个工作表选项卡并进行 vlookup,但这在它完成导入所有文件名之前超时,因此它对我不起作用并且似乎过度 -做我想做的事情的复杂而缓慢的方式。

有没有什么方法可以做我想做的事情,或者甚至比手动搜索谷歌驱动器中 2000 个左右的项目编号更胖的解决方法?

标签: google-sheetsgoogle-drive-api

解决方案


您可以尝试使用Google Apps 脚本。我已经复制了您的情况并提出了一个有效的代码。请参阅下面的代码(我已经尝试过了,它工作正常):

function myFunction() {
  driveFiles = DriveApp.getFolderById(folderId).getFiles(); // REPLACE folderId with the folder containing all your files to check
  ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
  lastRow = ss.getLastRow()
  itemNums = ss.getRange(2, 1, lastRow, 1).getValues();
  while(driveFiles.hasNext()){
    fileName = driveFiles.next().getName();
    for(row in itemNums){
      if(fileName.includes(itemNums[row])){
         Logger.log(ss.getRange(row, 5).getValue());
         ss.getRange(row, 5).check()
      }
    }
  }
}

您可能需要稍微修改/调整代码,以使其按您希望的方式工作。


推荐阅读