希望这是一个相当简单的问题!如何执行谷歌脚本作为用户无法查看的电子表格的“所有者”
我制作了一个Google脚本,它写入单独的工作表“MasterSheet”中的单元格中(由以下几个有用的Q &提供帮助)。这将最终被嵌入到我为个人用户提供的多个不同工作表中。
当用户对“MasterSheet”有编辑权限时,它可以很好地工作,但我需要保持私密 - 即使除我以外的任何人都看不到。
作为背景:在每个'用户表'中,IMPORTRANGE用于从允许该用户查看的'MasterSheet'中导入列,然后脚本允许用户向MasterSheet添加注释。 我可以查看MasterSheet以查看来自各个用户在一张统一工作表上的评论的所有列,但个别用户应该无法查看此列。
写在纸张上的特定的脚本是很普通的:
function saveCommentToMasterSheet(form){
var company = form.company,
contact = form.contactselect,
comment = form.message ,
ss = SpreadsheetApp.openById("MASTERSHEET_ID").getSheetByName('MasterSheet');
if(company=="all"){
var row = findCell(contact);
} else {
var row = findCell2(contact,company);
}
//^The above finds the specific row number relating to the entry the user wants to comment on.
var cell2 = ss.getRange(row,11);
// ^In this case '11' is the column related to this sheet's specific user, I've made separate sheets for each user that are identical except this column number
cell2.setValue(comment);
}
我相信我可以做MasterSheet编辑与此链接的人,但我宁愿避免这种情况,尤其是在脚本嵌入到每个电子表格中,所以如果用户只是看着它,他们会发现MasterSheet ID。
我知道使用执行API可以像我一样运行脚本,但如果我诚实地说,我会努力一点,以弄清楚这个工作。
对不起,如果我问一个简单的问题 - 我已经给它一个很好的搜索,并无法弄清楚。
非常感谢! Alex
N.B.这Running a google script from within a spreadsheet, but as a different user?看起来像一个类似的问题,但我真的想保持评论系统在用户的电子表格。
将'doPost(e)'函数放入绑定到主电子表格的项目中。然后将该脚本作为Web App发布。将原始函数保留在将分发给用户的电子表格中,但保留将要去除的所有当前代码,并将其放入绑定到主电子表格的项目中的函数中。目前将数据写入主电子表格的当前函数不会直接做到这一点。分布式电子表格中的当前函数将调用主电子表格中的'doGet(e)'函数,并发送数据,这些数据将在'e'中。 –