隐藏Google表格中的标签

时间:2016-09-20 22:32:32

标签: google-apps-script google-sheets

我正在为我的公司重新设计采购订单系统。我想让这个过程接近完全自动化,让它住在一个地方。除了我的供应商需要通过输入报价(价格)来编辑其标签之外,我没有遇到太多麻烦。

问题在于他们可以看到其他供应商(竞争对手)标签,我不希望这种情况发生。

所以,我是应用程序脚本的中间人,所以我可以找到自己的方式并且有一个小规模的脚本,但是当我增加规模时,我担心我的代码会有问题。

下面的脚本会检查有效用户,并根据用户的电子邮件地址隐藏选项卡。这一切都很好,但是在更大的规模上,每个供应商(满分5个)必须无法看到其他4个卖家标签,这将会出现问题。

function validUsers() {
  var adminUsers = ['supplier1@email.com'];
  var Users = ['supplier2@email.com'];

  if (adminUsers.indexOf(Session.getEffectiveUser().getEmail()) >= 0) {
    SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Seller1").showSheet()
  }

  if (Users.indexOf(Session.getEffectiveUser().getEmail()) >= 0) {
    SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Seller1").hideSheet()
  }
}

基本上,是否有比我更直接的方式或更好的方式? 我想要的是隐藏4个卖家选项卡中的4个,具体取决于哪个卖家正在编辑工作表。因此,Seller1只看到Seller1选项卡,其中实际上有5个卖方标签。

2 个答案:

答案 0 :(得分:0)

您是否考虑过为他们有权访问的每个卖家创建电子表格文件,而不是将所有卖家都包含在一个电子表格中?然后使用importrange()功能将每个功能导入中央电子表格。这最大限度地减少了对代码的需求,但确实意味着对供应商信息的所有更改都需要在关联文件中进行。您仍然可以在中央电子表格中添加包含内部计算公式的其他列。

卡尔

答案 1 :(得分:0)

谢谢你的建议。我认为这是供应商填写的替代方案或形式,但我已经解决了这个问题。

我现在首先隐藏了一个欢迎标签。打开文档后,会出现一个提示框,要求输入密码。根据给定的密码,将显示某些选项卡。这使他们能够进行更改,我的员工可以访问所有内容,并防止供应商看到彼此的报价。

此致

詹姆斯