You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写Google Script根据Sheet单元格校验Drive文件名是否存在

Google Drive 照片文件名存在性校验脚本

前置准备

  • 打开Google Drive中存放700张照片的目标文件夹,复制浏览器地址栏中folders/后方的字符串,这就是该文件夹的唯一ID,先存好备用
  • 打开记录了文件名的Google Sheet,点击顶部菜单栏的「扩展程序」→「Apps 脚本」,进入脚本编辑页面

可用脚本代码

将下方代码粘贴到脚本编辑器中,先把开头FOLDER_ID对应的占位内容替换成你刚才复制的文件夹ID:

function checkFileExistence() {
  // 替换为你自己的照片文件夹ID
  const FOLDER_ID = '这里粘贴你复制的文件夹ID';
  // 绑定当前打开的表格
  const activeSheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
  // 读取J列从第2行开始的所有文件名数据
  const lastRow = activeSheet.getLastRow();
  const nameList = activeSheet.getRange('J2:J' + lastRow).getValues().flat();

  // 拉取目标文件夹下所有文件名,存入集合做快速匹配(适配文件名唯一的场景)
  const targetFolder = DriveApp.getFolderById(FOLDER_ID);
  const existingNameSet = new Set();
  const fileIterator = targetFolder.getFiles();
  while (fileIterator.hasNext()) {
    const currentFile = fileIterator.next();
    existingNameSet.add(currentFile.getName());
  }

  // 逐行生成校验结果
  const resultList = nameList.map(fileName => {
    if (!fileName.trim()) return ['']; // 空单元格不返回结果
    return [existingNameSet.has(fileName.trim()) ? '是' : '否'];
  });

  // 将结果写入K列对应行,如需改写入列,修改下方第二个参数的数字即可(A=1、B=2...K=11)
  activeSheet.getRange(2, 11, resultList.length, 1).setValues(resultList);
}

运行操作步骤

  • 代码修改完成后点击脚本编辑器顶部的保存按钮,给项目自定义一个名称(比如「文件名校验工具」)即可
  • 点击编辑器顶部的运行按钮,第一次运行会弹出授权提示,按页面提示登录你的Google账号,授予脚本表格编辑、Drive文件读取权限即可。如果弹出「Google未验证此应用」的提示,点击「高级」→「继续前往(你的项目名)」即可,这是你个人编写的私有脚本,不存在安全风险
  • 等待脚本执行完成(700个文件的量级通常3-10秒即可跑完),回到表格页面就能看到K列对应位置已经生成了「是/否」的校验结果:对应J行的文件名在目标文件夹中则显示「是」,不存在则显示「否」

注意事项

  • 脚本默认将校验结果写入K列,如果K列已有存量数据,可以修改代码中getRange(2, 11, resultList.length, 1)里的数字11为目标列的序号即可
  • 校验为完全匹配规则,如果J列的文件名带多余空格、后缀名错误(比如多打了空格、把.jpg写成了jpeg),会被判定为不存在
  • 执行过程中不要重复点击运行按钮,等编辑器顶部出现「执行完成」的提示后再返回表格查看结果

内容的提问来源于stack exchange,提问作者Borrris

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.01 21:03:57