我希望根據創建日期將影像檔案插入谷歌幻燈片。我有以下代碼,它依次將影像從驅動器檔案夾插入谷歌幻燈片:
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 ;
}
}
我想對其進行更改,以便按創建日期(最新或最舊)添加影像。收到的任何幫助將不勝感激。謝謝。
uj5u.com熱心網友回復:
我相信你的目標如下。
- 您想從特定檔案夾中檢索影像檔案。
- 您想按照檔案創建日期的順序將檢索到的影像放入 Google 幻燈片。
- 您想使用 Google Apps 腳本來實作這一點。
在這種情況下,如何進行以下修改?
當使用Drive API中的“檔案:串列”方法時,可以按照創建日期的順序檢索檔案串列。這用于修改。
修改后的腳本:
在您使用此腳本之前,請在高級 Google 服務中啟用 Drive 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"使用。這意味著第一個影像是最舊的影像。當您要使用第一個影像為最新影像的順序時,請修改為orderBy: "createdDate desc"。
參考:
- 檔案:串列
- forEach()
uj5u.com熱心網友回復:
如果您希望它們按特定順序排列,只需在添加之前對它們進行排序。
轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/367952.html
