繁体   English   中英

Google App 脚本:在第 1 列中与第 2 列中的用户共享电子表格

[英]Google App Script: Share spreadsheets in Column 1, with Users in Column 2

客观的

在脚本运行时,授予对所有电子邮件(B 列)、所有电子表格(A 列)的查看访问权限

电子表格看起来像:

工作表网址 电子邮件
https://docs.google.com/spreadsheets/d/1 Bob@email.com
https://docs.google.com/spreadsheets/d/2 约翰@email.com

剧本

function setSheetPermissions(){
  //Spreadsheet that contains the Spreadsheet URL's & Emails.
  var ss= SpreadsheetApp.openById('spreadsheetID')
  
  // Sheet name that contains the URL's & Emails
  var sheet = ss.getSheetByName("Sheet1")
  
  // Get the values of all the URL's in column A
  var getSheetURLs = sheet.getRange("A2:A50").getValues();

  // Get the values of all the emails in column B
  var getEmails = sheet.getRange("B2:B50").getValues();
  
  for ( i in getEmails)
     getSheetURLs.addViewer(getEmails[i][0])

}

问题/错误

getSheetIDs.addViewer 不是 function(第 26 行,文件“代码”)

第 26 行: getSheetURLs.addViewer(getEmails[i][0])

我究竟做错了什么?

修改点:

  • 您可以从“A”和“B”列中检索这两个值。
  • 在您的脚本中, getSheetURLs是一个二维数组。 在这种情况下,不能直接使用addViewer方法。 我认为这是您的错误消息的原因。

当这些点反映在你的脚本中时,它变成如下。

修改后的脚本:

从:

// Get the values of all the URL's in column A
var getSheetURLs = sheet.getRange("A2:A50").getValues();

// Get the values of all the emails in column B
var getEmails = sheet.getRange("B2:B50").getValues();

for ( i in getEmails)
   getSheetURLs.addViewer(getEmails[i][0])

至:

var values = sheet.getRange("A2:B" + sheet.getLastRow()).getValues();
values.forEach(([sheetUrl, email]) => {
  if (sheetUrl && email) SpreadsheetApp.openByUrl(sheetUrl + "/edit").addViewer(email);
});
  • 从您显示的示例电子表格中,我了解到您的电子表格 URL 就像https://docs.google.com/spreadsheets/d/### 在这种情况下,不能直接使用openByUrl 所以我添加了/edit 如果您显示的电子表格 URL 与示例电子表格不同,请提供您的示例电子表格 URL。 通过这个,我想修改脚本。

  • 如果您的实际电子表格 URL 都是https://docs.google.com/spreadsheets/d/###https://docs.google.com/spreadsheets/d/###/edit ,您还可以使用SpreadsheetApp.openByUrl(sheetUrl + (sheetUrl.includes("/edit")? "": "/edit")).addViewer(email)

参考:

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM