首页 文章

在Google工作表中创建从URLS到Google Cloud 端硬盘上的文件的直接链接

提问于
浏览
0

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

Example sheet https://docs.google.com/spreadsheets/d/11TuHD8CvGunF08swEqXCMuG-ZdWWL3f6csoV5lN1nVE/edit#gid=112012263

我尝试使用= HYPERLINK(CONCATENATE和REGEXREPLACE(ImportXML),但我真的无处可去,并且不知道从哪里开始 .

欢迎任何帮助 .

1 回答

  • 0

    将这些脚本放入脚本编辑器中 . 一旦创建一个包含一个项目的菜单,就运行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();
       }
     }
    

相关问题