在Google文档中下载文档的旧版本


16

我在Google文档上有一个Excel表格文档,其中有多个修订版本。我想将其较旧版本之一下载到我的计算机上。

我怎样才能做到这一点?

(Google文档允许直接从下载最新版本File > Download as,但找不到任何下载修订的方法。)

Answers:


15

如果您下载文档的当前版本,请在浏览器(Firefox)的“下载”窗口中右键单击下载,然后复制URL。然后,只需&revision=NNN将此新URL粘贴并粘贴到浏览器地址栏中,然后按Enter。它将下载该特定修订版。

因此,剩下的唯一工作就是找出您需要使用哪个修订ID。

为此,请访问developers.google.com修订列表,然后单击立即尝试,然后输入文档的fileId,即docs.google.com/document/d/编辑时在浏览器网址栏中的长字符字符串和数字以及下一个斜杠。文件。在您之前复制的下载URL中也可以看到它。将其粘贴到API资源管理器页面上的fileId中,单击“ 授权并执行”

向下滚动到响应,查看ModifyedTime,然后从id字段中选择正确的数字。然后使用该号码下载您的文档。最终网址应如下所示:

docs.google.com/document/u/0/d/XXXX/export?format=docx&revision=NNN

其中XXXXfileId NNN是您的修订号。


1
支持这个!!!确认也适用于Google表格。请注意,JSON响应中显示的时间是格林尼治标准时间(GMT),因此虽然正确的修订历史记录会显示您当地时区的时间戳,但您需要将其转换为GMT才能找到确切的修订。
ADTC '16

@ADTC:一年后似乎不起作用。它仍然对您有用吗?
Adobe

@Adobe刚刚尝试过,它可以工作,但是您可能很难从API中找到正确的修订ID。那是你被困住的地方吗?
ADTC '17

@Adobe也许此附加技巧可以帮助您找到所需的修订ID。如果找不到所需的GMT时间戳,请nextPageToken在JSON响应的最上方查找。将该值放入pageToken字段中,然后再次执行。这将为您提供带有更多修订ID的新JSON响应。继续执行此操作,直到找到所需的修订ID。
ADTC '17

@ADTC:谢谢,在第二次尝试中我获得了某种成功:webapps.stackexchange.com/a/106553/14417。但是,我似乎在json响应中没有“ nextPageToken”。
的Adobe

9
  • 转到文件请参阅修订历史记录
  • 选择所需的版本,然后单击“还原此版本”。

这不会删除任何版本-您仍然可以返回到当前版本。

全文可在此处找到


1
但这迫使我还原到我不想要的旧版本,因为其他用户正在同时查看/编辑文档。还有其他方法吗?
Ramesh Soni

@RameshSoni正是fhackenberger的答案避免的地方!
ADTC

1

我尝试按照fhackenberger的建议进行操作,但由于它仅检索了最近的几个修订,因此无法正常工作,而我希望使用近一个月的版本。

但是我确实找到了一种非常简单的下载方法。在查看版本历史记录时,在右侧的版本历史记录下选择所需的版本后,单击选项(突出显示的版本右上角的三个垂直点),然后选择“制作副本”。这下载了我想要的版本


1

查看版本历史记录时,每个版本旁边都有3个点。您可以复制一个版本,然后将其保存在所需的位置并下载。


0

使用Chrome,我可以针对电子表格执行此操作(不幸的是,文档无法执行此操作):

  1. 转到文件>查看修订历史
  2. 显示您要下载的修订
  3. 取消点击“显示更改”(如果您不想看到更改,则为“
  4. 右键单击您的文档,然后选择“查看页面源代码”
  5. 从中删除view-source:

这将为您提供HTML版本


HTML页面?不用了,谢谢。我想要适当的出口。
ADTC

0

我结束了这个 https://docs.google.com/spreadsheets/u/0/d/DID/export?format=xlsx&rev=RID&gid=SID&id=DID

哪里:

  • DID-文档ID(已使用两次)
  • RID-修订版ID
  • SID-电子表格ID(我的电子表格包含很多工作表,只需要一张)

Ziad的答案有助于到达此链接。


0

自动化fhackenberger的答案

#!/usr/bin/env ruby

require 'json'
require 'active_support/core_ext/date' # required for timezone calculation; gem install activesupport
# require 'byebug'


# ========
## inputs:

jsonFile       = 'revisions.json' # file with json response obtained from https://developers.google.com/drive/v3/reference/revisions/list#try-it
docId          = 'you doc id' # e.g.: M67keINXrkCAPy9HyGEgyM5Q175yFM8byQeM953alao3
dateStartsWith = 'May 30'
format         = 'xlsx' # xlsx or docx
timezone       = 'Moscow' # list all timezones: ruby -e "require 'active_support/core_ext/date'; puts ActiveSupport::TimeZone.all.map(&:name)"


# =========
## program:

jsonString = File.read(jsonFile)
jsonData   = JSON.parse(jsonString)

# add local time stamps:
jsonData['revisions'].each { |rev| rev["localTimeStamp"] = Time.parse(rev["modifiedTime"]).in_time_zone(timezone).strftime("%b %e, %k:%M:%S %p, %Y") }

if format == 'xlsx'
  type = 'spreadsheets'
else
  format = 'docx'
  type = 'document'
end

revs = jsonData['revisions'].select {|rev| rev["localTimeStamp"].start_with?(dateStartsWith) }.each { |rev| rev["link"] = "https://docs.google.com/#{type}/u/0/d/#{docId}/export?format=#{format}&revision=#{rev['id']}" }

puts JSON.pretty_generate(revs)

仍然以某种方式我只能得到一些修订,而不是全部。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.