通过Google Sheet单元格重命名Google Drive文件夹内文件的技术求助
解决方案
你需要把脚本添加到Google Sheet的Apps Script编辑器中,因为脚本需要读取Sheet里的单元格数据。以下是完整的操作步骤和可运行的脚本:
操作步骤
- 打开存储文件名的Google Sheet,点击顶部菜单「扩展程序」→「Apps Script」,进入脚本编辑界面。
- 删除默认的
myFunction代码,替换为下方的脚本。 - 修改脚本里的3个配置参数:
FOLDER_ID:目标Drive文件夹的ID(从文件夹URL中提取,例如https://drive.google.com/drive/folders/abc123里的abc123)SHEET_NAME:存储文件名的Sheet标签名(比如「Sheet1」)NAME_RANGE:文件名所在的单元格范围(比如A2:A25,对应24行数据,假设第一行是表头)
- 点击编辑器顶部的保存按钮,给脚本命名(比如「RenameDriveFiles」)。
- 点击运行按钮,首次运行会触发权限申请,按提示完成授权(需允许脚本访问你的Drive和Sheet)。
可运行脚本
function renameDriveFilesFromSheet() { // 配置参数 const FOLDER_ID = "替换为你的文件夹ID"; const SHEET_NAME = "替换为你的Sheet名称"; const NAME_RANGE = "替换为文件名单元格范围(如A2:A25)"; // 获取目标文件夹内的文件列表 const folder = DriveApp.getFolderById(FOLDER_ID); const filesIterator = folder.getFiles(); const fileList = []; while (filesIterator.hasNext()) { fileList.push(filesIterator.next()); } // 获取Sheet中的文件名列表 const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(SHEET_NAME); const nameValues = sheet.getRange(NAME_RANGE).getValues().flat().filter(name => name.trim() !== ""); // 校验文件数量与文件名数量是否匹配 if (fileList.length !== nameValues.length) { throw new Error(`文件数量(${fileList.length})与文件名数量(${nameValues.length})不匹配,请检查`); } // 批量重命名文件 fileList.forEach((file, index) => { const newFileName = nameValues[index].trim(); if (newFileName) { file.setName(newFileName); console.log(`重命名完成:原文件名「${file.getName()}」→ 新文件名「${newFileName}」`); } }); }
注意事项
- 文件会按Drive文件夹内的默认排序(通常是创建时间)对应Sheet里的单元格顺序,若需要精准对应,可在Sheet中额外添加一列存储文件原名称/ID,修改脚本做匹配逻辑。
- 确保Sheet的单元格没有空值,空值对应的文件会跳过重命名。
- 授权时若出现「未经验证的应用」提示,点击「高级」→「转到[你的脚本名]」即可继续授权,这是自定义脚本的正常提示。
内容的提问来源于stack exchange,提问作者nico lino
相关产品推荐
相关产品推荐

