如何从Google Sheets中的URL列表直接下载图片?
从Google Sheets直接批量下载图片的方法
方法1:使用Google Apps Script(原生无依赖,推荐)
这是最稳定的方案,无需第三方工具,直接在Sheets内完成下载逻辑:
- 打开目标Google Sheets,点击顶部菜单栏「扩展程序」→「Apps Script」
- 清空编辑器里的默认代码,粘贴以下脚本:
function downloadImagesFromSheet() { const sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); // 读取A列的URL(第2行开始,跳过表头) const urls = sheet.getRange(2, 1, sheet.getLastRow() - 1, 1).getValues().flat(); // 替换为你在Google Drive创建的文件夹ID(从文件夹URL中提取) const targetFolderId = "你的Drive文件夹ID"; const targetFolder = DriveApp.getFolderById(targetFolderId); urls.forEach((url, idx) => { if (!url) return; try { const response = UrlFetchApp.fetch(url); // 从URL提取原文件名,也可自定义命名如`image_${idx+1}.png` const fileName = url.split('/').pop(); targetFolder.createFile(response.getBlob().setName(fileName)); // 在B列标记下载状态 sheet.getRange(idx + 2, 2).setValue("已下载"); } catch (err) { sheet.getRange(idx + 2, 2).setValue(`下载失败:${err.message}`); } }); }
- 修改脚本中的
targetFolderId:在Google Drive新建一个文件夹,打开文件夹后,URL中folders/后的字符串就是ID - 点击编辑器顶部的「运行」按钮,首次运行需授权(Google会提示“不安全的应用”,点击「高级」→「转到XX项目」即可完成授权)
- 等待脚本执行完成,所有图片会自动保存到你指定的Drive文件夹,表格B列会显示每个URL的下载状态
方法2:浏览器扩展辅助(适合非技术用户)
如果不想写代码,可以用支持批量提取URL的浏览器扩展:
- 确保Sheets中的URL是可点击的超链接(选中URL列→右键→「插入链接」,直接用当前单元格内容作为链接)
- 安装如「Batch Image Downloader」这类扩展
- 打开Sheets页面,点击扩展图标,选择「提取当前页面的图片链接」
- 筛选出需要下载的URL列表,点击「批量下载」即可
方法3:命令行批量下载(适合熟悉终端的用户)
- 在Sheets中,将URL列导出为CSV文件(「文件」→「下载」→「逗号分隔值(.csv)」)
- 打开终端/命令提示符,进入CSV文件所在目录
- 用以下命令批量下载:
- 用curl:
xargs -n 1 curl -O < 你的文件名.csv - 用wget:
wget -i 你的文件名.csv
下载的图片会保存在当前终端目录下
- 用curl:
内容的提问来源于stack exchange,提问作者Rashid Hussain
相关产品推荐
相关产品推荐

