我正在使用 Google Apps 脚本对电子表格中的数据进行加密。它工作正常,但电子表格中方便的修订历史使它有点争议,因为您可以简单地查看加密之前的版本。
有没有办法删除修订历史,或者简单地防止它们被一起创建?
我正在使用 Google Apps 脚本对电子表格中的数据进行加密。它工作正常,但电子表格中方便的修订历史使它有点争议,因为您可以简单地查看加密之前的版本。
有没有办法删除修订历史,或者简单地防止它们被一起创建?
不会。用于访问修订历史记录的 Drive API不会删除 Google 表格上的条目。
需要注意的修订历史只有具有编辑权限的人才能查看。仅查看或评论权限无法查看修订历史记录。
一种解决方案是让用户通过 Google 表单将数据提交到一个非常狭窄的共享表,并设置一个触发器以将您未加密的非敏感元/聚合数据复制到一个更公开的表中,以供不受信任的用户和脚本访问。单元格公式 IMPORTRANGE() 也可以工作,它从输入公式的人那里获得访问权限,因此可以将数据从受限制的电子表格移动到限制较少的电子表格,而不会损害原始表格。
第二种解决方案稍微麻烦一些,但更接近您的要求,即为用户和外部脚本提供对包含工作表的驱动器文件夹的访问权限。有了文件夹的ID,脚本就可以通过驱动api按名称搜索工作表,用户用眼睛按名称查找。您的加密脚本在完成加密后,使用SpreadsheetApp.copy(name)复制电子表格这将复制所有的公式、格式、数据,甚至脚本,但不会复制修订历史。传递 copy() 与原始工作表相同的名称,驱动器文件名不必是唯一的。使用 drive api 将新的电子表格移动到文件夹,它应该默认继承文件夹的共享。再次使用驱动 API 删除原始电子表格。因为所有用户和脚本都在特定文件夹 ID 中查找名为 X 的文件,所以一切仍然完全在他们期望的位置,但修订历史已消失。
不幸的是,Google Apps 脚本没有提供从修订历史记录中删除项目的方法。
复制所有电子表格,恢复到第一个版本,然后粘贴电子表格:)
对于 Google 文档,我设法通过制作文档副本来摆脱修订历史记录。不确定这是否也适用于电子表格。