我正在尝试在电子表格的单元格中创建基于时间/触发的锁定数据,以便在一天中的某些时段内不更改单元格中的数据。但在我创建时间锁定以删除范围保护之前,我需要在第一次POST时锁定单元格。
如何在第一次POST后锁定一个单元格,以便在锁定期间连续发送到同一单元格的POST不会更改数据?
注意:应用程序以我身份执行,包括匿名在内的任何人都可以访问它。
doPost(e)
{
ssNew = SpreadsheetApp.openById(ssId);
var sheet = ssNew.getSheets()[0];
var cell = sheet.getRange(1,1);
var visits = cell.getValue();
cell.setValue(e.parameter.name);
SpreadsheetApp.flush();
var lockrange = sheet.getRange(1,1);
var protection = lockrange.protect().setDescription('Protected');
var me = Session.getActiveUser();
protection.removeEditor(me);
}
答案 0 :(得分:0)
您需要在某种持久性内存中存储标志:例如使用PropertiesService(在这种情况下可能是脚本属性)或另一个工作表中的电子表格单元格。然后,doPost()可以在更改之前检查该标志是否已设置。
您还可以查看programmatically protecting the cell以防止用户进行修改。