基于Google Sheet批量下载重命名图片并同步至Google Drive更新路径
批量处理Google Sheet图片:下载→重命名上传Drive→更新路径
准备工作
- 打开目标Google Sheet,确认前两列是「图片名称」「图片URL」,新增第三列命名为「Drive图片路径」用来存放最终链接
- 在Google Drive新建一个专门存储图片的文件夹,复制它的文件夹ID(从文件夹URL里提取,比如
https://drive.google.com/drive/folders/XXX里的XXX就是ID)
编写Google Apps Script
- 在Sheet内点击「扩展程序」→「Apps Script」,清空默认代码
- 粘贴以下脚本,记得把
"你的文件夹ID"替换成你刚复制的文件夹ID:
function downloadAndUploadImages() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); const data = sheet.getDataRange().getValues(); const folderId = "你的文件夹ID"; const folder = DriveApp.getFolderById(folderId); // 跳过表头,从第二行开始处理数据 for (let i = 1; i < data.length; i++) { const fileName = data[i][0]; const imageUrl = data[i][1]; if (!fileName || !imageUrl) continue; // 空行直接跳过 try { // 下载图片并转换为Blob格式 const response = UrlFetchApp.fetch(imageUrl); const imageBlob = response.getBlob().setName(fileName); // 上传到指定Drive文件夹 const uploadedFile = folder.createFile(imageBlob); // 设置文件为任何人可查看(不需要公开就删掉这行) uploadedFile.setSharing(DriveApp.Access.ANYONE_WITH_LINK, DriveApp.Permission.VIEW); // 将Drive链接写回Sheet第三列 sheet.getRange(i+1, 3).setValue(uploadedFile.getUrl()); } catch (err) { // 处理失败时记录错误信息 sheet.getRange(i+1, 3).setValue("处理失败:" + err.message); } } SpreadsheetApp.getUi().alert("批量处理完成!"); }
运行脚本
- 点击脚本编辑器的「运行」按钮,第一次运行会弹出授权请求,按提示完成授权(需允许脚本访问你的Sheet和Drive)
- 等待运行结束,Sheet第三列会自动更新为对应图片的Drive链接
注意事项
- 图片URL必须是可直接访问的,若存在反爬、需要登录的限制,脚本会下载失败
- 单次脚本运行最长限制为6分钟,数据量过大建议分批次处理
- 可根据需求修改脚本,比如调整列的位置、修改文件权限等
内容的提问来源于stack exchange,提问作者Someone
相关产品推荐
相关产品推荐

