Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.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 Apps Script_Google Sheets_Google Workspace_Importrange - Fatal编程技术网

Google apps script 以编程方式连接两个电子表格,以便无需手动授权即可导入

Google apps script 以编程方式连接两个电子表格,以便无需手动授权即可导入,google-apps-script,google-sheets,google-workspace,importrange,Google Apps Script,Google Sheets,Google Workspace,Importrange,首先,这是针对企业G-Suite的。已禁用工作域之外的共享/发布 这是我的设置: team drive 1上文件夹中的模板电子表格 team drive 1上文件夹中的目标电子表格 团队驱动器2上的目标文件夹 我有一个脚本: 副本#1至#3 向#2添加一个IMPORTRANGE函数,该函数从#3中创建的新文件中提取数据 现在,当我进入#2时,我看到导入范围函数有一个错误,我必须授权工作表:“您需要连接这些工作表。”。下面是一个屏幕截图: 如果我单击“允许访问”,它将工作,并从新复制的文件中提取

首先,这是针对企业G-Suite的。已禁用工作域之外的共享/发布

这是我的设置:

  • team drive 1上文件夹中的模板电子表格
  • team drive 1上文件夹中的目标电子表格
  • 团队驱动器2上的目标文件夹
  • 我有一个脚本:

  • 副本#1至#3
  • 向#2添加一个
    IMPORTRANGE
    函数,该函数从#3中创建的新文件中提取数据
  • 现在,当我进入#2时,我看到导入范围函数有一个错误,我必须授权工作表:“您需要连接这些工作表。”。下面是一个屏幕截图:

    如果我单击“允许访问”,它将工作,并从新复制的文件中提取数据

    我想知道的是,是否有一种方法可以在我的代码中以编程方式授权访问,这样我就不必打开#2并手动授权

    var sFileID = "ID of template Spreadsheet in a folder on team drive 1";
    var dFileID = "ID destination Spreadsheet in a folder on team drive 1";
    var dFolderID = "ID of destination folder on a team drive 2";
    
    // get the 2 files and the folder
    var sFile = DriveApp.getFileById(sFileID);
    var dFile = DriveApp.getFileById(dFileID);
    var dFolder = DriveApp.getFolderById(dFolderID);
    
    // copy the template file to the destination folder
    var nFile = sFile.makeCopy("test", dFolder);
    
    // open the destination spreadsheet
    var dss = SpreadsheetApp.openById(dFileID);
    
    // get the sheet
    var ds = dss.getSheetByName("Sheet1");
    
    // append a new row with the IMPORTRANGE function pulling from the new file
    ds.appendRow(['=IMPORTRANGE("' + nFile.getId() + '", "Sheet1!A2:D2")']);
    
    SpreadsheetApp.flush();
    

    无法自动授权导入。GoogleApps脚本或者GoogleSheetsAPI有一个方法可以实现这一点

    另一种选择是与任何有链接的人共享源电子表格

    相关的