首页 > 解决方案 > 获取 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")

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

标签: google-apps-scripthyperlinkgoogle-drive-api

解决方案


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

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

推荐阅读