Googleドキュメントで古いバージョンのドキュメントをダウンロードする


16

Google Docsにいくつかの改訂版を含むExcelシートドキュメントがあります。古いバージョンの1つをマシンにダウンロードしたい。

これどうやってするの?

(Google Docsでは、最新バージョンをから直接File > Download asダウンロードできますが、リビジョンをダウンロードする方法が見つかりませんでした。)

回答:


15

ドキュメントの現在のバージョンをダウンロードする場合は、ブラウザー(Firefox)の[ダウンロード]ウィンドウでダウンロードを右クリックし、URLをコピーします。次に&revision=NNN、この新しいURLをブラウザのアドレスバーに追加して貼り付け、Enterキーを押します。その特定のリビジョンをダウンロードします。

したがって、残っている唯一の演習は、使用する必要があるリビジョンIDを見つけることです。

これを行うには、developers.google.comの改訂リストにアクセスして [ 今すぐ試す ]をクリックし、ドキュメントのfileIdを入力します。これは、docs.google.com/document/d/編集中にブラウザのURLバーの次のスラッシュとその間にある文字と数字の長い文字列ですドキュメント。以前にコピーしたダウンロードURLにも表示されます。それをAPIエクスプローラーページのfileIdに貼り付けて、Authorizeを実行します。

応答までスクロールダウンし、modifiedTimeを確認して、idフィールドから正しい数値を選択します。次に、その番号を使用してドキュメントをダウンロードします。最終URLは次のようになります。

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

XXXXfileIdはどこにあり、NNNリビジョン番号です。


1
これに投票してください!!! Googleスプレッドシートでも機能することを確認しました。JSON応答に表示される時刻はGMTであるため、適切な改訂履歴にはローカルタイムゾーンのタイムスタンプが表示されますが、正確な改訂を見つける前にそれをGMTに変換する必要があります。
ADTC

@ADTC:1年後は機能していないようです。それでも機能しますか?
アドビ

@Adobeが試したところ、動作しますが、APIから正しいリビジョンIDを見つけるのに苦労するかもしれません。それはあなたが立ち往生しているところですか?
ADTC

@Adobeは、おそらくこの追加のトリックが、必要なリビジョンIDを見つけるのに役立つでしょう。探しているGMTタイムスタンプが見つからない場合nextPageTokenは、JSON応答の最上部を探してください。この値をpageTokenフィールドに入力して、再度実行します。これにより、より多くのリビジョンIDを持つ新しいJSONレスポンスが提供されます。目的のリビジョンIDが見つかるまで、これを繰り返します。
ADTC

@ADTC:ありがとう、2回目の試行で、ある種の成功を収めました:webapps.stackexchange.com/a/106553/14417。ただし、json応答に「nextPageToken」がないようです。
アドビ

9
  • ファイルに移動→ 改訂履歴を見る
  • 必要なバージョンを選択し、[ このバージョンを復元 ]をクリックします

これにより、バージョンが削除されることはありません。現在のバージョンに戻ることができます。

記事全文はこちらにあります


1
しかし、これにより、他のユーザーが同時にドキュメントを表示/編集しているため、望ましくない古いバージョンに復元する必要があります。他のアプローチはありますか?
ラメシュソニ

@RameshSoniそれはまさに、fhackenbergerの答えが避けるものです!
ADTC

1

fhackenbergerが提案したことを試してみましたが、最後のいくつかのリビジョンしか取得できず、1か月近く前のバージョンが必要だったため、うまくいきませんでした。

しかし、私はそれをダウンロードする非常に簡単な方法を見つけました。バージョン履歴を表示しているときに、右側のバージョン履歴の下で必要なバージョンを選択した後、オプション(強調表示されたバージョンの右上隅にある3つの垂直ドット)をクリックし、「コピーを作成」を選択します。これは私が欲しかったバージョンをダウンロードしました


1

バージョン履歴を見ると、各バージョンの横に3つのドットがあります。バージョンのコピーを作成し、好きな場所に保存してダウンロードできます。


0

Chromeを使用すると、スプレッドシートに対してこれを行うことができます(残念ながらドキュメントはできません):

  1. [ファイル]> [改訂履歴を表示]に移動します
  2. ダウンロードするリビジョンを表示します
  3. [変更を表示]をクリックします(変更を表示したくない場合)
  4. ドキュメントを右クリックして、[ページのソースを表示]を選択します
  5. view-source:を削除します

これにより、HTMLで改訂が行われます


HTMLページ?結構です。適切なエクスポートが必要です。
ADTC


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)

それでも、どういうわけか、すべてではなく、いくつかのリビジョンのみを取得します。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.