从名称中获取 Google Sheet URL

Posted

技术标签:

【中文标题】从名称中获取 Google Sheet URL【英文标题】:Getting Google Sheet URL from Name 【发布时间】:2016-09-18 06:20:15 【问题描述】:

我有一个 google sheet 文件,它需要找到另一个 google sheet 的 URL,其中只知道它的名称(我需要它的 URL,以便我可以通过其他应用程序从外部检索数据)。

为了简化这一点,我将两个 g-sheets 文件保存在 Google 云端硬盘中的同一文件夹下。我知道我可以在下面的同一张表格中执行此操作,当“ss”引用另一个 google 表格文件并且我只知道它的名称时,我该怎么做。

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

理想情况下,我想通过一个单元格公式来完成,但如果我需要向“脚本编辑器”添加一个函数也可以。

【问题讨论】:

【参考方案1】:

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

【讨论】:

【参考方案2】:

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

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”。

【讨论】:

以上是关于从名称中获取 Google Sheet URL的主要内容,如果未能解决你的问题,请参考以下文章

用于将 google drive 中的文件名列表与 google sheet 列中的名称列表进行比较的 Apps 脚本,以将新文件从驱动器添加到工作表

从 Google Sheet API v4 追加数据不再起作用

使用 Excel OleDb 在 SHEET ORDER 中获取工作表名称

请问如何获取excel所有sheet的名称?

如何使用R将当前日期添加到Google工作表名称中?

google sheet - 在二维数组中搜索值