google-apps-script - 谷歌表格在谷歌驱动器中按文件名查找文件
问题描述
有没有办法通过文件名链接到谷歌驱动器上的文件?
我在谷歌表上列出数据,在同一个文件夹中,我有多个与工作表上的数据相对应的 pdf 文件。说,id: 1234
有对应的pdf文件1234.pdf
。
有没有办法根据文件名快速链接到文件?
解决方案
解释:
我相信实现您的目标的唯一方法是使用 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
。
用于脚本的样本表:
推荐阅读
- c# - 使用WhenAny处理每个任务的异常
- java - alicebot 包中的“MagicBooleans”、“MagicStrings”是什么?
- php - 与爆炸变量 Yii2 之间
- php - PHP PDO 准备好的语句 - 无法插入布尔值 false
- java - 找不到符号 - 但变量在那里
- ruby-on-rails - 无法在 ruby on rails 中将数据插入数据库
- elasticsearch - 为同一主机上的两个站点设置 Elasticsearch
- java - 二维数组的流式操作
- python - 使谷歌日历 python API 客户端使用特定的浏览器配置文件
- php - 如何使用带有多个输入文件的 PHP“SWITCH”功能从 HTML 表单上传多个文件?