如何使用 google 应用程序脚本根据创建日期插入图像?
How to insert images according to creation date with google apps script?
我希望根据创建日期将图像文件插入 google 幻灯片中。我有以下代码,依次
将图像从驱动器文件夹插入 googles 幻灯片:
function makeSlides() {
var presentation = SlidesApp.openById(slideID);
var folder = DriveApp.getFolderById(folderID);
var contents = folder.getFiles()
var file;
var i = 1;
while (contents.hasNext()) {
var file = contents.next();
data = file.getId();
// insert above image
var image = DriveApp.getFileById(data);
var slide = presentation.getSlides()[i];
var image = slide.insertImage(image);
slide = presentation.appendSlide(SlidesApp.PredefinedLayout.BLANK);
i++;
}
}
我想更改它,以便按创建日期添加图像(最新的或最旧的)。收到的任何帮助将不胜感激。谢谢
如果您希望它们按特定顺序排列,只需 sort 在添加之前。
我相信你的目标如下。
- 您想从特定文件夹中检索图像文件。
- 您想将检索到的图像按照文件创建日期的顺序放入 Google 个幻灯片。
- 您想使用 Google Apps 脚本实现此目的。
这样的话,下面的修改怎么样?
当使用DriveAPI中的“Files:list”方法时,可以按照创建日期的顺序检索文件列表。这个用于修改。
修改后的脚本:
在您使用此脚本之前,please enable Drive API at Advanced Google services。
function makeSlides() {
var slideID = "###"; // Please set your Google Slides ID.
var folderID = "###"; // Please set your folder ID.
var presentation = SlidesApp.openById(slideID);
var files = Drive.Files.list({orderBy: "createdDate asc", q: `'${folderID}' in parents and trashed=false and mimeType contains 'image'`, fields: "items(id)"}).items;
files.forEach(({id}, i) => {
var image = DriveApp.getFileById(id);
var slide = presentation.getSlides()[i];
var image = slide.insertImage(image);
slide = presentation.appendSlide(SlidesApp.PredefinedLayout.BLANK);
});
}
- 当此脚本为运行时,文件列表按照文件创建日期的顺序从特定文件夹中检索。在这种情况下,使用
orderBy: "createdDate asc"
。这意味着第一个图像是最旧的图像。当您想使用第一张图片为最新图片的顺序时,请修改为orderBy: "createdDate desc"
.
参考文献:
我希望根据创建日期将图像文件插入 google 幻灯片中。我有以下代码,依次 将图像从驱动器文件夹插入 googles 幻灯片:
function makeSlides() {
var presentation = SlidesApp.openById(slideID);
var folder = DriveApp.getFolderById(folderID);
var contents = folder.getFiles()
var file;
var i = 1;
while (contents.hasNext()) {
var file = contents.next();
data = file.getId();
// insert above image
var image = DriveApp.getFileById(data);
var slide = presentation.getSlides()[i];
var image = slide.insertImage(image);
slide = presentation.appendSlide(SlidesApp.PredefinedLayout.BLANK);
i++;
}
}
我想更改它,以便按创建日期添加图像(最新的或最旧的)。收到的任何帮助将不胜感激。谢谢
如果您希望它们按特定顺序排列,只需 sort 在添加之前。
我相信你的目标如下。
- 您想从特定文件夹中检索图像文件。
- 您想将检索到的图像按照文件创建日期的顺序放入 Google 个幻灯片。
- 您想使用 Google Apps 脚本实现此目的。
这样的话,下面的修改怎么样?
当使用DriveAPI中的“Files:list”方法时,可以按照创建日期的顺序检索文件列表。这个用于修改。
修改后的脚本:
在您使用此脚本之前,please enable Drive API at Advanced Google services。
function makeSlides() {
var slideID = "###"; // Please set your Google Slides ID.
var folderID = "###"; // Please set your folder ID.
var presentation = SlidesApp.openById(slideID);
var files = Drive.Files.list({orderBy: "createdDate asc", q: `'${folderID}' in parents and trashed=false and mimeType contains 'image'`, fields: "items(id)"}).items;
files.forEach(({id}, i) => {
var image = DriveApp.getFileById(id);
var slide = presentation.getSlides()[i];
var image = slide.insertImage(image);
slide = presentation.appendSlide(SlidesApp.PredefinedLayout.BLANK);
});
}
- 当此脚本为运行时,文件列表按照文件创建日期的顺序从特定文件夹中检索。在这种情况下,使用
orderBy: "createdDate asc"
。这意味着第一个图像是最旧的图像。当您想使用第一张图片为最新图片的顺序时,请修改为orderBy: "createdDate desc"
.