从名称中获取Google表格网址

时间:2016-09-18 06:20:16

标签: google-sheets

我有一个google工作表文件,需要找到另一个谷歌工作表的网址,其中只有其名称已知(我需要其URL,以便我可以通过其他应用程序从外部检索数据)。

为简化此操作,我将两个g-sheet文件保存在Google云端硬盘中的同一文件夹下。我知道我可以在下面的同一张纸上做到这一点,我怎样才能在" ss"是指另一个google工作表文件,我只知道它的名字。

var ss = SpreadsheetApp.getActiveSpreadsheet();
Logger.log(ss.getUrl());

理想情况下,我想通过单元格公式来完成它,但如果我需要在脚本编辑器中添加一个函数,那就没问题了。

2 个答案:

答案 0 :(得分:0)

如果您拥有两个电子表格所在的文件夹的ID,为什么不在folder上运行查询并过滤掉您要查找的文件by name.。获得该文件后,then grab it's id.。使用该ID,您可以将其解析为Google电子表格网址。希望这可以帮助。

答案 1 :(得分:0)

我让它工作到这里,从脚本编辑器运行正常:

function listFiles() {
  var baseFolderObject = DriveApp.getFolderById('0B38VWNq67cFHZVdWcE5KREZXS1U');

  var results = [];
  var types = [MimeType.GOOGLE_SHEETS]; //, MimeType.GOOGLE_DOCS];
  for (var t in types) {
    var files = baseFolderObject.getFilesByType(types[t]);

     var file, data, sheet = SpreadsheetApp.getActiveSheet();

    sheet.appendRow(["Name", "Date", "Size", "URL", "Download", "Description", "Type"]);

    while (files.hasNext()) {
      var file = files.next();
      results.push(file);

    data = [ 
      file.getName(),
      file.getDateCreated(),
      file.getSize(),
      file.getUrl(),
      file.getId()
    ];

    sheet.appendRow(data);
    }

  }
}

我现在遇到的唯一问题,如果我想从电子表格中运行它说"你没有权限调用" getFolderById"。