如何用JavaScript获取谷歌云端硬盘图片像素尺寸并写入表格
嘿,这个需求我刚好折腾过,用Google Apps Script就能完美搞定——毕竟都是谷歌自家的工具,衔接起来毫无违和感,而且完全不用跳去别的平台。下面是具体的实现方案,亲测支持你提到的JPG、PNG、TIFF、GIF所有格式:
实现方案:批量提取Drive图片像素尺寸并写入Google Sheet
步骤1:提前准备工作
- 先创建一个新的Google Sheet,手动给第一行加表头:
文件名、文件格式、宽度(px)、高度(px)、Drive链接 - 找到你要处理的Drive文件夹,复制它的文件夹ID(就是文件夹URL里
folders/后面那串长字符)
步骤2:编写Google Apps Script代码
打开你的Google Sheet,点击顶部菜单栏的扩展程序 > Apps Script,把默认代码清空,替换成下面的代码:
function getImageDimensionsToSheet() { // 替换成你的Drive文件夹ID const targetFolderId = "YOUR_FOLDER_ID_HERE"; // 替换成你要写入数据的Sheet名称(比如默认的"Sheet1") const targetSheetName = "Sheet1"; const folder = DriveApp.getFolderById(targetFolderId); // 只筛选图片类型文件,自动过滤非图片格式 const imageFiles = folder.getFilesByType(MimeType.IMAGE); const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(targetSheetName); // 清空已有数据(保留表头) if (sheet.getLastRow() > 1) { sheet.getRange(2, 1, sheet.getLastRow()-1, 5).clearContent(); } let currentRow = 2; // 从第二行开始写入数据 while (imageFiles.hasNext()) { const file = imageFiles.next(); const fileName = file.getName(); const fileUrl = file.getUrl(); const fileMimeType = file.getMimeType(); // 核心:从文件Blob中提取原生像素尺寸 const fileBlob = file.getBlob(); const image = Utilities.newBlob(fileBlob.getBytes(), fileMimeType).getAs('image/png'); const width = image.getWidth(); const height = image.getHeight(); // 写入表格对应单元格 sheet.getRange(currentRow, 1).setValue(fileName); sheet.getRange(currentRow, 2).setValue(fileMimeType.replace("image/", "")); // 只显示格式后缀 sheet.getRange(currentRow, 3).setValue(width); sheet.getRange(currentRow, 4).setValue(height); sheet.getRange(currentRow, 5).setFormula(`=HYPERLINK("${fileUrl}", "打开文件")`); currentRow++; } // 运行完成提示 SpreadsheetApp.getUi().alert("图片尺寸提取完成!数据已写入表格"); }
步骤3:配置权限并运行脚本
- 把代码里的
YOUR_FOLDER_ID_HERE替换成你的Drive文件夹ID,targetSheetName替换成你的Sheet名称 - 点击脚本编辑器顶部的运行按钮,第一次运行会触发权限验证,按照页面提示完成授权(这是你自己的脚本,只会访问你的Drive和Sheet数据,放心授权)
- 运行结束后回到Sheet,就能看到所有图片的原生像素尺寸数据了!
额外扩展:筛选指定尺寸范围的图片
如果需要只保留符合尺寸要求的图片数据,可以在写入表格前加判断逻辑,比如:
// 示例:只保留宽500-2000px、高500-2000px的图片 const minWidth = 500; const maxWidth = 2000; const minHeight = 500; const maxHeight = 2000; if (width >= minWidth && width <= maxWidth && height >= minHeight && height <= maxHeight) { // 这里放入写入表格的代码 }
内容的提问来源于stack exchange,提问作者RealSweatyYeti
相关产品推荐
相关产品推荐

