google-apps-script - 获取 Google Drive 中多个文件的共享链接以放入电子表格
问题描述
我有这个脚本,它从文件夹内的文件创建可共享的链接,然后将链接放入电子表格。
function myFunction() {
var ss=SpreadsheetApp.getActiveSpreadsheet();
var s=ss.getActiveSheet();
var c=s.getActiveCell();
var fldr=DriveApp.getFolderById("REPLACE_[ID]_HERE");
var files=fldr.getFiles();
var names=[],f,str;
while (files.hasNext()) {
f=files.next();
str='=hyperlink("' + f.getUrl() + '","' + f.getName() + '")';
names.push([str]);
}
s.getRange(c.getRow(),c.getColumn(),names.length).setFormulas(names);
}
相反,我收到此错误
The number of rows in the range must be at least 1. (line 13, file "Code")
解决方案
在我的文件目录中,只有文件夹。
因此,要获取可共享文件夹的链接,您需要使用 getFolders() 方法。
function myFunction() {
var ss=SpreadsheetApp.getActiveSpreadsheet();
var s=ss.getActiveSheet();
var c=s.getActiveCell();
var fldr=DriveApp.getFolderById("REPLACE_[ID]_HERE");
var files=fldr.getFolders();
var names=[],f,str;
while (files.hasNext()) {
f=files.next();
str='=hyperlink("' + f.getUrl() + '","' + f.getName() + '")';
names.push([str]);
}
s.getRange(c.getRow(),c.getColumn(),names.length).setFormulas(names);
}
推荐阅读
- c# - 我们如何才能禁用常规按钮,直到整个 dataGridView 完全用 C# 中的有效值填充
- jquery - 通过单击提交获取单选按钮的值
- tensorflow - 更高效的 Keras LSTM 输入?
- api - Ebay:返回已售商品数量的最佳 API 是什么
- php - Bootstrap Grid 中的 Wordpress 自定义查询
- unity3d - Unity2D 游戏对象在重力比例设置为 0 时下降
- javascript - React.js 在包含反引号的状态中转义字符
- python - numpy where 函数与匹配条件的元素
- javascript - 搜索 Github 用户
- python - 使用带有 matploblib 的子图绘制两个图的图例的问题