以编程方式连接两个电子表格,这样您就可以导入而无需手动授权
programatically connect two Spreadsheets so you can IMPORTRANGE without having to manually authorize
首先,这是针对企业 G-Suite 的。 Sharing/publishing 工作域外被禁用。
这是我的设置:
- 团队驱动器 1 上文件夹中的模板电子表格
- 团队驱动器 1 上文件夹中的目标电子表格
- 团队驱动器 2 上的目标文件夹
我有一个脚本:
- 复制 #1 到 #3
- 向 #2 添加一个
IMPORTRANGE
函数,从 #3 中创建的新文件中提取数据
现在,当我进入#2 时,我看到导入范围函数出现错误,我必须授权工作表:"You need to connect these sheets."。以下是截图:
如果我点击 "Allow access" 它会起作用,并且会从新复制的文件中提取数据。
我想知道是否有一种方法可以在我的代码中以编程方式授权访问,这样我就不必打开 #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();
无法自动授权IMPORTRANGE。 Google Apps Script 或者 Google Sheets API 有一个方法可以做到这一点。
根据 this answer 的说法,一种替代方法是与 link 的任何人共享源电子表格。
相关
- How can I make an apps script to instantly allow access to all imported elements in a Google Spreadsheet?
- How to allow access for importrange function via apps script?
首先,这是针对企业 G-Suite 的。 Sharing/publishing 工作域外被禁用。
这是我的设置:
- 团队驱动器 1 上文件夹中的模板电子表格
- 团队驱动器 1 上文件夹中的目标电子表格
- 团队驱动器 2 上的目标文件夹
我有一个脚本:
- 复制 #1 到 #3
- 向 #2 添加一个
IMPORTRANGE
函数,从 #3 中创建的新文件中提取数据
现在,当我进入#2 时,我看到导入范围函数出现错误,我必须授权工作表:"You need to connect these sheets."。以下是截图:
如果我点击 "Allow access" 它会起作用,并且会从新复制的文件中提取数据。
我想知道是否有一种方法可以在我的代码中以编程方式授权访问,这样我就不必打开 #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();
无法自动授权IMPORTRANGE。 Google Apps Script 或者 Google Sheets API 有一个方法可以做到这一点。
根据 this answer 的说法,一种替代方法是与 link 的任何人共享源电子表格。
相关
- How can I make an apps script to instantly allow access to all imported elements in a Google Spreadsheet?
- How to allow access for importrange function via apps script?