【问题标题】:Append latest Google Drive Files to Google Sheet将最新的 Google Drive 文件附加到 Google Sheet
【发布时间】:2021-04-02 19:47:02
【问题描述】:

我需要一个脚本来将 Google Drive 文件夹 (ImagePath) 中的最新文件和 URL(所有图像 .jpg)附加到最后一行末尾的 Google 表格中。该文件夹包含数千张图像,大约 6,000 张,因此在返回“所有”文件名之前会启动超时功能。所以理想情况下,我只需要知道当天添加了哪些新文件,因为这应该每天触发一次。

是否有人为此目的编写脚本,这对我们的业务至关重要,但我无法在任何地方提供示例。 非常感谢提前。

【问题讨论】:

  • 以下答案是否回答了您的问题?

标签: google-apps-script google-drive-api


【解决方案1】:

示例输出:

(第一次运行)

(第二次运行)

它将名称附加在第一列,将网址附加在第二列。 以 2 分钟的时间差跑,所以它重复了。但既然你的是时间触发的,这不应该发生。

我发现 this code 会提取超过 1 个月的文件并根据您的情况对其进行修改。还添加了第二个功能来填充您的谷歌表格。

代码:

// Fetches the files newer than 1 day
function oneDayOldFiles() {
  var arrayOfFileURLs = [];
  var arrayOfFileNames = [];
  // Get folder ID where you want to search
  var folderID = '0B55C21aJsSBlfk9FTjRqOG8tb3hjR1N4MTU1YjVPNU4weGVhSldfU3F4OXladVVNMF9Ccms';

  // 3600 seconds = 1 hour, 1000 milliseconds = 1 second, 24 hours = 1 day
  var within24hours = new Date().getTime() - (3600 * 1000 * 24);

  var cutOffDate = new Date(within24hours);
  var cutOffDateAsString = Utilities.formatDate(cutOffDate, "GMT", "yyyy-MM-dd");

  // Create an array of files by date criteria
  var files = DriveApp.getFolderById(folderID).searchFiles(
     'modifiedDate > "' + cutOffDateAsString + '"');

  while (files.hasNext()) {
    var file = files.next();
    theFileURL = file.getUrl();
    theFileName = file.getName();

    arrayOfFileURLs.push(theFileURL);
    arrayOfFileNames.push(theFileName);
  }

  return [arrayOfFileNames, arrayOfFileURLs];
};

function appendLatestFiles() {
  var [fileNames, fileURLs] = oneDayOldFiles();
  var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = spreadsheet.getActiveSheet();
  var lastRow = sheet.getLastRow();

  fileNames.forEach(function (name, index){
    sheet.getRange((lastRow + 1) + index, 1).setValue(name);
    sheet.getRange((lastRow + 1) + index, 2).setValue(fileURLs[index]);
  });
}

请注意,这不仅限于 .jpg 文件(这会获取少于 24 小时的所有文件,因为您发布的所有文件都是 jpgs)

我没有包含它的条件。但是您可以轻松地将其添加到上面的代码中。

乍一看,您可以检查使用getMimeType() 获取mime 类型并添加一个if 条件,让您仅在mime 类型为image/jpeg 时推送文件

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-08
    • 1970-01-01
    • 2021-12-10
    • 2016-10-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多