Google apps script 在Google工作表中创建从URL到Google Drive上文件的直接链接
我想创建直接链接到我在谷歌硬盘上的文件,我在谷歌工作表。我知道如何手动执行此操作,但需要一个公式来提取一个URL的唯一ID并将其添加到另一个URLGoogle 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
我尝试使用=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。如果这是可行的,请检查我的答案