我正在使用Google Apps脚本对电子表格中的数据进行加密。它工作正常,但是电子表格中方便的修订历史记录使它成为一个有争议的话题,因为您可以在加密之前简单地查看一个版本。

有没有一种方法可以删除修订历史记录,或者只是防止它们一起创建?

最佳答案

不。
用于访问修订历史记录的Drive API不会删除Google表格上的条目。

修订历史记录仅对具有编辑权限的用户可见。仅查看或评论权限无法看到修订历史记录。

一种解决方案是让用户通过Google表单将数据提交到一个非常狭窄的共享工作表,并设置触发器以将您未加密的非敏感元数据/聚合数据复制到更公开的工作表中,以供不受信任的用户和脚本访问。单元格公式IMPORTRANGE()也会起作用,它可以从输入公式的人员获得访问权限,因此可以将数据从受限制的电子表格移动到受限制较小的电子表格,而不会损害原始电子表格。

第二种解决方案比较麻烦,但更贴近您的要求,它是为用户和外部脚本提供对包含工作表的驱动器文件夹的访问权限。有了文件夹的ID,脚本便可以通过drive api按名称搜索工作表,用户可以通过眼睛来按名称查找工作表。加密脚本完成加密后,将使用SpreadsheetApp.copy(name)复制电子表格,该文件将复制所有公式,格式,数据甚至脚本,但不复制修订历史记录。传递与原始工作表相同的名称的copy(),驱动器文件名不必唯一。使用驱动器api将新电子表格移至该文件夹,默认情况下,它应继承该文件夹的共享。再次使用驱动器API删除原始电子表格。因为所有用户和脚本都在特定文件夹ID中查找名为X的文件,所以所有内容仍然与他们期望的位置完全相同,但是修订历史记录已消失。

10-06 09:09