从电子表格名称中获取电子表格ID或网址

时间:2016-09-14 02:19:44

标签: javascript google-apps-script

我在google驱动器上的文件夹中有多个已命名的电子表格。如何通过将其中一个名称传递给函数来获取其id或url?

我可以使用DriveApp获取该文件,但我不知道如何从中获取id。

function getFile(name)
{
  var folder = DriveApp.getFolderById('id');
  var file = folder.getFilesByName(name);
  //get file id
}

有没有办法使用DriveApp或SpreadsheetApp获取ID或网址?

1 个答案:

答案 0 :(得分:1)

命令folder.getFilesByName(name);可能会检索多个文件(名称为 getFile s ),因此它会为您提供文件迭代器您需要使用 while循环进行解析 如果您完全确定至少有一个具有该名称的文件,则可以避免使用如下脏代码的循环:
var file = folder.getFilesByName(name).next();
然后使用以下方法检索id:
var id = file.getId()

- 编辑:
如果您不确定要检索文件(您不知道它是否存在或具有正确的名称......),您需要检查文件迭代器的结果。
而不是写:
var file = folder.getFilesByName(name);
更喜欢写:
var files = folder.getFilesByName(name); // you could have zero or more than one file
如果您认为有多个具有该名称的文件,那么您可以执行 while循环

var out = [];
while(files.hasNext()) {
  var file = files.next();
  out.push(file.getId());
  Logger.log(file.getId());
}
return out;

或者如果只有一个或零个文件,那么简单的if将完成这项工作:

if (files.hasNext()) {
  var file = files.next();
  Logger.log(file.getId());
  return file.getIt(); // eventually
}
else {
  Logger.log("there is no file with that name");
  return "no id"; // eventually
}