将一个谷歌驱动器文件夹中的所有照片插入谷歌表格?
Posted
技术标签:
【中文标题】将一个谷歌驱动器文件夹中的所有照片插入谷歌表格?【英文标题】:Insert all photos from one google drive folder into google Sheet? 【发布时间】:2021-08-06 02:12:15 【问题描述】:我不是一个编码员,只是聪明到可以稍微修改代码。但我希望有人能帮助我。我希望将 google 文件夹中的所有图像上传到带有脚本的电子表格中。我需要根据单元格更改文件夹名称,因此我可以将单元格的名称更改为不同的文件夹运行脚本,脚本将从文件夹中引入所有照片。有些文件夹可能有 5 张照片,有些文件夹可能有 25 张照片。我已经能够弄清楚,但前提是我参考了实际照片,而不仅仅是参考文件夹的名称并将其全部导入。提前感谢所有帮助。
【问题讨论】:
【参考方案1】:function insertImages()
const ss = SpreadsheetApp.getActiveSpreadsheet();
const nameF = 'Folder'; // Sheet Name of the sheet containing the Folder Name
const rangeF = 'A1'; // Cell containing the Folder Name
const nameT = 'Target'; // Sheet Name of the sheet to insert images
let row = 2; // Starting row to insert
const col = 1; // Column to insert
const sheet = ss.getSheetByName(nameT);
const folderName = ss.getSheetByName(nameF).getRange(rangeF).getValue();
const folders = DriveApp.getFoldersByName(folderName);
while (folders.hasNext())
const folder = folders.next();
const files = folder.getFiles();
while (files.hasNext())
const file = files.next();
sheet.insertImage(file.getBlob(), col, row++);
【讨论】:
我实现了这个,运行它并没有带回图像,我没有收到任何错误,我所做的只是将“文件夹”、“A1”、“目标”的名称全部更改为正确的名称/单元格。将文件夹的名称准确地放入文件夹名称的单元格中。有可能我忘记了什么吗?你能让它工作/测试吗?我不明白为什么它没有给出错误但没有图像。 抱歉,打错字了。const folder
应该是 const folders
我尝试了几种不同的组合,你能做到吗?
我已经尝试了所有方法,但无法正常工作。你愿意帮忙吗?我会为你的时间折腾几美元。【参考方案2】:
按 ID
function importImgs1()
var folderID = '1ZfWEnxtKQiuz8V9j2ckgIZRHRMmYc7rH';
var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('import images');
sh.clear();
sh.appendRow(["name", "image"]);
var folder = DriveApp.getFolderById(folderID);
var data = [];
var files = folder.getFiles();
while (files.hasNext())
var file = files.next();
data = [
file.getName(),
"=image(\"https://docs.google.com/uc?export=download&id=" + file.getId() +"\")",
];
sh.appendRow(data);
按名称
function importImgs2()
var folderName = 'img';
var sh = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('import images by name');
sh.clear();
sh.appendRow(["name", "image"]);
var folders = DriveApp.getFoldersByName(folderName);
var foldersnext = folders.next();
var data = [];
var files = foldersnext.getFiles();
while (files.hasNext())
var file = files.next();
data = [
file.getName(),
"=image(\"https://docs.google.com/uc?export=download&id=" + file.getId() +"\")",
];
sh.appendRow(data);
【讨论】:
我不能使用文件夹ID,我需要使用文件夹的名称以上是关于将一个谷歌驱动器文件夹中的所有照片插入谷歌表格?的主要内容,如果未能解决你的问题,请参考以下文章