繁体   English   中英

如何通过 Google App Script 获取单元格编辑历史记录?

[英]How to get cell edit history by Google App Script?

我有一个谷歌电子表格。 当我在任何单元格上单击鼠标右键时,我可以从上下文菜单中选择Show edit history

在此处输入图像描述

之后,我可以在弹出窗口 window 中看到编辑历史记录。

像这样

我的问题是如何通过脚本从单元格中获取这些数据?

我尝试使用检查选项找到解决方案,并在此处找到预期数据:

 <div class="docs-blameview-authortimestamp"> <div class="docs-blameview-author">My name </div> <div class="docs-blameview-timestamp">May 9, 11:56 AM </div> </div>

有什么建议如何在某些 Google 表格中导入该数据?

更新

我正在继续寻找解决方案。

当我使用 Chrome DevTools 检查此操作(以show edit history )时,我在 Network 选项卡上发现了此请求: 在此处输入图像描述

 fetch("https://docs.google.com/spreadsheets/d/1xVrzBezPzOmZC7Vap-reuNcWXZx_0qONbZ67pBiHVkQ/blame?token=AC4w5VhQLkaKWPQT2sGl8uO8MkXyW1N7hg%3A1589033535890&includes_info_params=true", { "headers": { "accept": "*/*", "accept-language": "en-US,en;q=0.9", "content-type": "multipart/form-data; boundary=----WebKitFormBoundaryFpwmP3acru2z5xQc", "sec-fetch-dest": "empty", "sec-fetch-mode": "cors", "sec-fetch-site": "same-origin", "x-build": "trix_2020.18-Tue_RC02", "x-client-data": "CI62yQEIpLbJAQipncoBCNCvygEIvLDKAQjttcoBCI66ygEYmr7KAQ==", "x-rel-id": "6a4.4ffb56e6.s", "x-same-domain": "1" }, "referrer": "https://docs.google.com/spreadsheets/d/1xVrzBezPzOmZC7Vap-reuNcWXZx_0qONbZ67pBiHVkQ/edit", "referrerPolicy": "strict-origin-when-cross-origin", "body": "------WebKitFormBoundaryFpwmP3acru2z5xQc\r\nContent-Disposition: form-data; name=\"selection\"\r\n\r\n[30710966,[null,[null,[null,\"629843311\",9,1],[[null,\"629843311\",9,10,1,2]]]]]\r\n------WebKitFormBoundaryFpwmP3acru2z5xQc\r\nContent-Disposition: form-data; name=\"clientRevision\"\r\n\r\n478\r\n------WebKitFormBoundaryFpwmP3acru2z5xQc\r\nContent-Disposition: form-data; name=\"includeDiffs\"\r\n\r\ntrue\r\n------WebKitFormBoundaryFpwmP3acru2z5xQc--\r\n", "method": "POST", "mode": "cors", "credentials": "include" });

我认识到一些参数的含义。 我不确定是否要更正...


查询字符串参数

 /* token: AC4w5VhQLkaKWPQT2sGl8uO8MkXyW1N7hg:1589033535890 AC4w5VhQLkaKWPQT2sGl8uO8MkXyW1N7hg // Probably it takes from user 1589033535890 // Timestamp of current session of current user includes_info_params: true // I think that's what gets the user data and editing time of the cell


表格数据:

 /* selection: [30710966, // Spreadsheet identificator (Any idea, how to get it???) [null,[null, [null, "629843311", // Sheet ID in string 9, // cell's row - 1 1], // cell's column - 1 [[null, "629843311" // Sheet ID in string,9 // cell's row - 1,10 // cell's row,1 // cell's column - 1,2 // cell's column ]]]]] clientRevision: 478 // Edit step number (How to get it???) includeDiffs: true // True shows last edition / false - look at previous steps */

我认为可以创建自定义提取并获取 blob。 然后提取最后一个编辑者姓名和单元格最后版本的时间戳。

不幸的是,我的技术很差。 我只是在学习。 有人可以帮我弄这个吗?

也许您可以通过 Drive API, https://developers.google.com/drive/api/v2/reference/revisions获取 clientRevisions 信息。 您说的电子表格 ID,30710966 似乎对每个电子表格都很常见。 我有一个相同的字符串。 你很接近它,我想。 对于逆向工程,我相信向所有人开放的信息应该可以通过多种方式访问。 如果谷歌为此提供一些 API 那就太好了,我相信他们正在准备它,因为这是一个相对较新的 function。

如果您准备好承担这么多麻烦,一个更简单的解决方案是推出您自己的编辑历史记录。 只需通过 onEdit 触发器(常规或已安装)记录每个编辑。 然后在必要时检索它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM