如何为电子表格添加基于时间的访问权限

时间:2014-06-11 06:46:52

标签: excel google-apps-script

我已经创建了一份大学试卷,并将通过谷歌电子表格进行评估输入。 工作表已经在只读模式下共享,链接将在指定的时间间隔访问,在这里写入模式。 我已经编写了一个函数来实现这一点,如下所示。

出于测试目的,我已经创建并执行了今天,但它无法正常工作,您是否可以提供一些指导方针来纠正我的代码,为什么它没有运行。

function getSheetName(index) 
{
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  //var allSheets = ss.getSheets();
  var allSheetN

ames = new Array();
  var currentdate = new Date();
  var currentTime = d.toLocaleTimeString(); // "12:35 PM"

//may'15, will access in write mode between 3:00 to 5:00 PM
  if (currentdate = "2014-05-09" & currentTime >= "3:00 PM" & currentTime <= "5:00 PM"){
    ss.addEditor(pro_sjhot@gmail.com);
  }
  else if (currentTime < "3:00 PM" & currentTime > "5:00 PM") // for rest of the day it will show in read only mode
  {
    ss.removeEditor(pro_sjhot@gmail.com);
    ss.addViewer(pro_sjhot@gmail.com);
  }
  }

2 个答案:

答案 0 :(得分:0)

我不熟悉谷歌应用程序脚本,但乍一看我不确定这是否有效:

if(currentdate =“2014-05-09”&amp; currentTime&gt; =“3:00 PM”&amp; currentTime&lt; =“5:00 PM”)

您的变量currentdate Date(),而在代码中,您希望它表现为字符串(我在您的代码中看不到任何转换)。另外,请确保您的currentTime确实以 12h 格式返回值,而不是 24h 格式。

希望有所帮助

最后:来自C#区域,您不需要在代码中使用双&amp;&amp; 吗?我的意思是如果代码不应该是这样的:

if(currentdate =“2014-05-09”&amp;&amp; currentTime&gt; =“3:00 PM”&amp;&amp; currentTime&lt; =“5:00 PM”)

答案 1 :(得分:0)

您的方法需要您在某个时刻以所有者的身份实际运行它。您可以使用触发器为您执行此操作。您可以设置触发器,以便在特定时间运行所需的功能。

https://developers.google.com/apps-script/understanding_triggers

因此,编写一个可以更改所需权限的函数。然后设置时基触发器来运行它。确保至少运行一次该函数,因此确保所有者具有在触发时运行该函数的正确权限。如果您不这样做,Google会提示您并允许您进行授权。