我如何获得我自己拥有并在今年创建的驱动器中所有工作表的计数?

时间:2019-12-29 16:15:12

标签: google-apps-script google-sheets

我正在使用以下代码,该代码允许我记录驱动器中所有文件的名称-

// Log the name of every file in the user's Drive.
var files = DriveApp.getFiles();
while (files.hasNext()) {
  var file = files.next();
  Logger.log(file.getName());
}

但是我怎么-

  1. 获取仅用于表格的文件
  2. 缩小我所有的文件
  3. 过滤掉今年创建的内容

我需要为此使用Sheets API吗?我只需要计数而已。

任何帮助将不胜感激。

1 个答案:

答案 0 :(得分:3)

尝试一下-

function getFiles() {
  var files = DriveApp.getFilesByType(MimeType.GOOGLE_SHEETS);
  var i = 0;
  while (files.hasNext()) {
    var file = files.next();
    var fileOwner = '';
    try {
      fileOwner = file.getOwner().getEmail();
    } catch (e) {
      fileOwner = '';
    }
    if (fileOwner == Session.getEffectiveUser().getEmail() && file.getDateCreated().getYear() == new Date().getYear()) {
      Logger.clear();
      i = i + 1;
      Logger.log(i);
    }
  }
}

基本上,切换到getFilesByType(mimeType)(参考here),然后使用文件迭代器浏览所有者和创建日期的函数。

我故意使用Session.getEffectiveUser,而不是那样对电子邮件ID进行硬编码,因此脚本可以被团队中的任何人使用。

希望这会有所帮助。