如何编写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
相关产品推荐
相关产品推荐

