javascript - 用于了解单元格 google sheet 的编辑历史的脚本
问题描述
我正在与多人一起处理一个文件,我想做一个脚本,告诉我该人如何修改该单元格以及发生这种情况的时间,我只需要进行最后一次更改的电子邮件用户和此处的时间示例,
到目前为止,我得到了这个,这让我得到了电子邮件用户,但没有时间戳。
function history_version() {
var thisSS = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = thisSS.getSheetByName('Data');
var specialCell = sheet1.getRange("A1:A5");
Logger.log(htmlEmail = "Cell " + specialCell.getA1Notation() + " edited by " + Session.getActiveUser().getEmail())
}
谢谢你的时间
解决方案
回答:
如果您通过onEdit触发器触发函数,而不是从编辑器手动触发,您可以获得实际的编辑日期:
function onEdit() {
var thisSS = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = thisSS.getSheetByName('Data');
var specialCell = sheet1.getRange("A1:A5");
var now = new Date();
Logger.log("Edited by " + Session.getEffectiveUser().getEmail() + " at " + now);
}
笔记:
我使用getEffectiveUser而不是getActiveUser因为后者在这种情况下可能不可用(简单触发器)。另一种选择是安装触发器(如果您要访问需要授权的服务,这将是必要的)。
推荐阅读
- flutter - 在flutter应用程序中从显示带有加载小部件的黑屏调用时如何停止setState?
- postgresql - 如何使用标签标记变更集或变更日志文件 - webdevops/liquibase
- grails - 找不到构造函数“java.lang.String”的参数 0
- java - 如何确保 Java 线程永远不会运行无限循环?
- java - 如何在java中按右移?
- python - 为什么使用 while 循环可以使程序工作,但我原来的 for 循环不起作用?(DNA pset6)
- javascript - 查找最后一次说出一个词
- android - 无法解决 response.body().string() 的问题
- jupyter-notebook - Jupyter 中单元格之间的乳胶方程数重置为 1
- node.js - “npm install”安装不熟悉的文件