gpt4 book ai didi

google-apps-script - 如何将文档恢复到以前的版本

转载 作者:行者123 更新时间:2023-12-04 15:29:56 26 4
gpt4 key购买 nike

我想将 GAS 中的 Google 文档(或任何其他文档)恢复到较早的版本。我设法访问了修订版,甚至下载了较旧的修订版,但是如何将文档恢复到指定的修订版?

最佳答案

  • 您想恢复到以前版本的 Google 文档。
  • 您想使用 Google Apps 脚本实现此目的。

  • 如果我的理解是正确的,这个答案怎么样?

    问题和解决方法:

    不幸的是,在现阶段,Google Docs 的修订无法通过 API 直接通过脚本进行更改。因此,作为几种解决方法之一,我想建议使用导出的数据覆盖 Google Docs 文件。此解决方法的流程如下。
  • 从具有修订 ID 的 Google Docs 文件中检索导出的端点。
  • 在这种情况下,Google Docs 文件将导出为 Microsoft Docs 文件。
  • 从导出的端点检索 blob。
  • 用检索到的 blob 覆盖 Google Docs。

  • 通过此流程,Google Docs 文件恢复到以前的版本。

    重要的:

    重要的一点是,当 Google Docs 文件导出为 Microsoft Docs 文件时,在大多数情况下,覆盖的 Google Docs 文件不会与该版本的原始 Google Docs 文件发生变化。但我不确定这种解决方法是否适用于所有情况。所以请注意这一点。

    示例脚本:

    此解决方法的示例脚本如下。在运行脚本之前, please enable Drive API at Advanced Google services .
    function myFunction() {
    var revisionId = "1"; // Please set the revision ID you want to revert.
    var googleDocsFileId = "###"; // Please set the Google Docs file ID.

    var endpoints = Drive.Revisions.get(googleDocsFileId, revisionId).exportLinks;
    var keys = Object.keys(endpoints);
    for (var i = 0; i < keys.length; i++) {
    if (keys[i].indexOf("application/vnd.openxmlformats-officedocument") > -1) {
    var endpoint = endpoints[keys[i]] + "&access_token=" + ScriptApp.getOAuthToken();
    var mediaData = UrlFetchApp.fetch(endpoint).getBlob();
    Logger.log(mediaData.getBytes().length)
    Drive.Files.update({}, googleDocsFileId, mediaData);
    break;
    }
    }
    }

    笔记:
  • 即使 Google Docs 文件恢复到以前的版本,文件的版本也可以更改。但在测试上述脚本之前,我建议使用示例 Google Docs 文件。
  • 使用此解决方法时,除了 Google Docs 之外的文件也可以恢复到以前的版本。但在这种情况下,请修改脚本。
  • 如果你想完美还原到以前的版本,在当前阶段,我建议手动还原。
  • 例如,当您只想还原单元格的值时,这可以完美实现。您可以在 this thread 上查看作为样例。

  • 引用:
  • Advanced Google services
  • Revisions: get
  • Files: update

  • 如果这不是你想要的方向,我很抱歉。

    更新日期:2020 年 2 月 7 日

    从 2020 年 1 月起,访问 token 不能与 access_token=### 等查询参数一起使用. Ref所以请使用请求头的访问 token 而不是查询参数。如下。
    var res = UrlFetchApp.fetch(url, {headers: {Authorization: "Bearer " + ScriptApp.getOAuthToken()}});

    关于google-apps-script - 如何将文档恢复到以前的版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57886437/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com