首页 > 解决方案 > 谷歌表格在谷歌驱动器中按文件名查找文件

问题描述

有没有办法通过文件名链接到谷歌驱动器上的文件?

我在谷歌表上列出数据,在同一个文件夹中,我有多个与工作表上的数据相对应的 pdf 文件。说,id: 1234有对应的pdf文件1234.pdf

有没有办法根据文件名快速链接到文件?

标签: google-apps-scriptgoogle-sheets

解决方案


解释:

我相信实现您的目标的唯一方法是使用 Google Apps 脚本,尤其是DriveApp类。

  • 以下脚本将获取一列名称作为输入,并将指定文件夹中每个名称的 url 返回到工作表。

  • 它假定文件的名称在此文件夹中是唯一的。

解决方案:

function myFunction() {
  const ss = SpreadsheetApp.getActive();
  const sh = ss.getSheetByName('Sheet1'); // put the name of your sheet
  const folder_id = "fid"; // put the folder id
  const folder = DriveApp.getFolderById(folder_id);
  const names = sh.getRange('A2:A'+sh.getLastRow()).getValues();
  const urls = names.map(name=>[folder.getFilesByName(name+".pdf").next().getUrl()]);
  sh.getRange(2,2,urls.length,1).setValues(urls);   
}

从上面的脚本中调整以下四件事:

  • 选择工作表的名称;替换Sheet1为您的工作表名称。
  • 将文件夹的文件夹 ID 放入fid.
  • 文件名从 A 列和范围复制到A2包含内容的最后一行。选择您拥有文件名称的列。
  • 调整要粘贴列的起始单元格。在我的情况下sh.getRange(2,2,..),意味着从单元格开始粘贴B2

用于脚本的样本表:

在此处输入图像描述


推荐阅读