使用应用程序脚本按 ID 检索驱动器文件信息

Retrieve drive file information by ID with appscript

检索 Google 个驱动文件的驱动文件信息并在 Google 中列出 Sheet

我希望使用 appscript 通过文件 ID 列表查找所有者、文件创建日期、驱动器文件的当前共享设置,文件 ID 在 A 列中逐行列出 sheet 并且结果将在行中的单独列中打印信息(B 列为所有者,C 列为创建日期,D 列为当前共享设置)。

这可能吗?

我相信你的目标如下。

  • 您想从 Spreadsheet 的“A”列中检索文件 ID,并希望检索所有者的电子邮件、创建日期、当前共享设置([=12= 的值]) 并将其放入“B”、“C”和“D”列。
  • 您想使用 Google Apps 脚本实现此目的。

在这种情况下,下面的示例脚本怎么样?

示例脚本:

请将以下脚本复制粘贴到Spreadsheet的脚本编辑器中。并且,请在脚本编辑器中设置 sheet 名称和 运行 myFunction

function myFunction() {
  const sheetName = "Sheet1"; // Please set the sheet name.

  const sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
  const lastRow = sheet.getLastRow();
  if (lastRow == 0) return;
  const range = sheet.getRange("A1:A" + lastRow);
  const values = range.getValues().map(([id]) => {
    try {
      const file = DriveApp.getFileById(id);
      const owner = file.getOwner();
      const createdDate = file.getDateCreated();
      const sharing = file.getSharingAccess().toString();
      return [owner ? owner.getEmail() : "", createdDate, sharing];
    } catch (e) {
      console.log(e.message)
      return Array(3).fill("");
    }
  });
  range.offset(0, 1, values.length, values[0].length).setValues(values);
}
  • 当此脚本为运行时,从“A”列检索文件 ID,所有者(电子邮件地址),创建日期,文件的共享设置为检索,这些值来自“B”列。

  • 无法检索到owner时,放空值

注:

  • 在这个示例脚本中,根据您的问题,它假定文件 ID 被放入“A”列。如果“A”列不是文件 ID,则无法检索文件元数据。请注意这一点。

参考文献: