Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 在Google工作表中创建从URL到Google Drive上文件的直接链接_Google Apps Script_Google Sheets_Concatenation - Fatal编程技术网

Google apps script 在Google工作表中创建从URL到Google Drive上文件的直接链接

Google apps script 在Google工作表中创建从URL到Google Drive上文件的直接链接,google-apps-script,google-sheets,concatenation,Google Apps Script,Google Sheets,Concatenation,我想创建直接链接到我在谷歌硬盘上的文件,我在谷歌工作表。我知道如何手动执行此操作,但需要一个公式来提取一个URL的唯一ID并将其添加到另一个URL 我尝试使用=HYPERLINK(CONCATENATE和REGEXREPLACE)来实现这一点(导入XML,但我真的一无所获。将这些脚本放入脚本编辑器。运行onOpen,它将创建一个包含一个项目的菜单。现在返回电子表格,确保文件名列表右侧有一个空白列,然后选择所有文件名及其右侧的单元格。然后从他在“我的工具”菜单中选择“获取文件链接”。它会将文件id

我想创建直接链接到我在谷歌硬盘上的文件,我在谷歌工作表。我知道如何手动执行此操作,但需要一个公式来提取一个URL的唯一ID并将其添加到另一个URL


我尝试使用=HYPERLINK(CONCATENATE和REGEXREPLACE)来实现这一点(导入XML,但我真的一无所获。

将这些脚本放入脚本编辑器。运行onOpen,它将创建一个包含一个项目的菜单。现在返回电子表格,确保文件名列表右侧有一个空白列,然后选择所有文件名及其右侧的单元格。然后从他在“我的工具”菜单中选择“获取文件链接”。它会将文件id放在所有选定文件的旁边。它今天运行得很慢,所以请耐心等待。此外,如果其中一个文件导致错误,我没有错误恢复功能,因此您必须手动恢复。我不会一次选择太多,因为脚本超时时间为6分钟

function onOpen()
{
  SpreadsheetApp.getUi().createMenu('My Tools')
    .addItem('Get Links to Files','testFind')
    .addToUi();
}

function testFind()
{
  var sht = SpreadsheetApp.getActiveSheet();
  var rng = sht.getActiveRange();
  var rngA = rng.getValues();
  for(var i=0;i<rngA.length;i++)
  {
    rngA[i][1]=findFileByNameReturnId(rngA[i][0]);
  }
  rng.setValues(rngA);
}

function findFileByNameReturnId(name)
{
 var rv = '';
 var files = DriveApp.getFiles();
 while (files.hasNext()) 
 {
   var file = files.next();
   if(file.getName()==name)
   {
     rv = file.getId();
   }
 }
函数onOpen() { SpreadsheetApp.getUi().createMenu(“我的工具”) .addItem('Get Links to Files','testFind') .addToUi(); } 函数testFind() { var sht=SpreadsheetApp.getActiveSheet(); var rng=sht.getActiveRange(); var rngA=rng.getValues();
对于(var i=0;ii已经在一个工作表中有了文件列表,只需要从中提取ID,这样我就可以将它添加到另一个工作表中。我不知道如何使用/实现google脚本,但无论如何都要感谢。我将其复制到了您的脚本编辑器中,并为您运行了onOpen,因此现在您有了MyTools菜单。在a列中输入文件名,然后选择其中的一些第A列和第B列中的一些,然后选择GetLinksToFiles。如果这是可行的,请检查我的答案