如何插入图像根据创建日期与谷歌的应用程序的剧本吗?

0

的问题

我找到inesrt图像的文件进入google幻灯片根据的日期。 我有以下代码,其sequentually 插入图像的谷歌幻灯片驱动的文件夹:

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++;
 
  }

}

我想要改变这样的图像加入的日期,他们被创造(无论是新的或最古老的). 任何帮助接收到的将是极大的赞赏。 谢谢。

2

最好的答案

2

我相信你的目标如下。

  • 你想检索图像文件的具体文件夹。
  • 你想要把检索到的图像谷歌幻灯片,以便创建日期的文件。
  • 要实现这一使用谷歌应用脚本。

在这种情况下,如何对以下修改?

当方法"文件:"在驱动API使用的文件列表可以检索以便创建的日期。 这是用于该修改。

修改脚本:

在你用这个脚本, 请启动API在先进的谷歌服务.

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" 使用。 这意味着1图像是历史最悠久的图像。 当你想要使用订单,该第1图像是最新的图像,请修改 orderBy: "createdDate desc".

参考文献:

2021-11-24 00:26:31

谢谢你的回答Tanaike,这不正是我想要的。
sp2

@sp2感谢你作出答复和测试。 我很高兴你的问题得到解决。 谢谢你,太。
Tanaike

嗨Tanaike,我发现上面的代码并不能够载于文件从一个共同谷歌驱动(代码没有错误,它只是不负载任何东西). 我只能负载的图像,从我个人的驱动-你有任何想法什么在这里?
sp2

@sp2对你的额外问题,在这种情况下,请修改 var files = Drive.Files.list({orderBy: "createdDate asc", q: `'${folderID}' in parents and trashed=false and mimeType contains 'image'`, fields: "items(id)"}).items;var files = Drive.Files.list({orderBy: "createdDate asc", q: `'${folderID}' in parents and trashed=false and mimeType contains 'image'`, fields: "items(id)", corpora: "allDrives", includeItemsFromAllDrives: true, supportsAllDrives: true}).items;. 由此,本文件的共享驱动器可以检索。
Tanaike

谢谢Tanaike,这一工作。 我已经试图修改 orderBy 参数种文件的顺序 'name''name_natural' 等等。 作为概要 在这里,但是它提供了一个错误。 为什么不能 orderBy 接受这些参数以这种方式?
sp2

@sp2谢谢你的回复。 我很高兴您的第2个问题得到解决。 对你的新的第3个问题,我想支持你。 但我必须道歉,我的可怜的英文技能。 不幸的是,我无法理解它。 我表示深深的歉意,我不能解决你所有的问题。 这是由于我的可怜的英文技能。 我深深的表示歉意。 我可以问你有关细节第3个问题吗?
Tanaike

嗨Tanaike,这是完全可以理解的,不需要道歉。 基本上,我是问我怎么可以添加的图像,按字母顺序? 我想用 orderBy : nameorderBy : name_natural 在你的代码来代替 orderBy : createdDate所概述的链接我共享,但它不工作,只是想知道为什么。
sp2

@sp2谢谢你的回复。 我道歉,我的可怜的英文技能。 虽然我不确定我是否可以正确理解您的第2个问题,例如,在我的回答,在该文件的列表中被检索,以便的 createdDate我用 createdDate asc 作为值。 在这种情况下,当你想要的排序的文件列表的文件,如何使用 orderBy: "title asc"? 如果这不是直接的解决方案的第2个问题,我再次道歉.
Tanaike
1

如果你希望他们在特定订单只是 他们之前加入。

2021-11-23 23:55:56

谢谢你的分享,链接
sp2

其他语言

此页面有其他语言版本

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................