Email 以机器可读的格式获取从Google电子表格更改通知中更改的单元格的详细信息

Email 以机器可读的格式获取从Google电子表格更改通知中更改的单元格的详细信息,email,google-apps-script,notifications,google-sheets,revisions,Email,Google Apps Script,Notifications,Google Sheets,Revisions,如果我有谷歌电子表格,例如 我在手机上设置了通知,每当手机发生变化时,我都会立即给我发电子邮件 我通过电子表格API对电子表格进行了更改,即不是手工更改 然后我收到这样一封电子邮件: 主题:“通知测试”最近编辑 查看Google文档“通知测试”中的更改:单击 这里 其他人从2014年1月10日12:23更改为12:23(格林威治) 平均时间) 价值观改变了 如果我打开“单击此处”链接,则我会得到此URL,其中显示电子表格中已更改的单元格: 我的问题是: 是否有一种方法可以获取关于哪个单元

如果我有谷歌电子表格,例如

我在手机上设置了通知,每当手机发生变化时,我都会立即给我发电子邮件

我通过电子表格API对电子表格进行了更改,即不是手工更改

然后我收到这样一封电子邮件:

主题:“通知测试”最近编辑

查看Google文档“通知测试”中的更改:单击 这里

其他人从2014年1月10日12:23更改为12:23(格林威治) 平均时间)

  • 价值观改变了
如果我打开“单击此处”链接,则我会得到此URL,其中显示电子表格中已更改的单元格:

我的问题是:

是否有一种方法可以获取关于哪个单元格已更改的信息,并以我可以编程方式使用的格式(例如JSON)?

我已经浏览了Google电子表格API:

在驱动器API修订版上:

我还尝试使用Google Apps脚本设置onEdit()事件:

我认为最后一种方法就是答案

这种方法的问题在于,虽然onEdit可用于通过电子邮件发送更改的详细信息,但只有在手动编辑电子表格时,才会触发onEdit,而我的则通过电子表格API以编程方式进行更新


有什么想法吗?

您可以构建一个检查更改的函数。一种方法是比较同一电子表格的多个实例。如果有分歧,你可以给自己发电子邮件。使用时间驱动触发器,您可以每分钟、每小时、每一天或每一周进行检查(取决于您的需要)

var表=**无论什么**//您将在其中进行更改的电子表格
var范围=**无论什么**//要检查更改的范围
var compSheet=**无论什么**//将与之比较以进行更改的工作表
函数checkMatch(){
var myCurrent=sheet.getRange(range.getValues();
var myComparison=compSheet.getRange(range.getvalues();
if(myCurrent==myComparison){//检查是否有任何差异

对于(i=0;我不可能通过gdata风格的谷歌电子表格api,请参阅横向思维。我喜欢它。这是一个解决这个问题的非常有创意的解决方案。它会让你体验一下,让你知道我的进展如何。