获取Google云端硬盘中多个文件的共享链接以放入电子表格

时间:2019-09-09 01:06:19

标签: google-apps-script hyperlink google-drive-api

我有这个脚本,该脚本从文件夹内的文件创建可共享的链接,然后将链接放入电子表格中。

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")

脚本基于此答案 https://webapps.stackexchange.com/a/119646

1 个答案:

答案 0 :(得分:0)

在我的文件目录中,只有文件夹。

因此,要获取可共享文件夹的链接,您将需要使用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);
}