めも帖

「めも帖」代わりにダラダラと書いていったり、めもしたりしているだけです。

Googleドキュメント(Google SpreadSheet)をAPI経由でダウンロードする

Googleドキュメント(Google SpreadSheet)をAPI経由でダウンロードするPythonのコードを書いてみました。
ドキュメントなどは、見ながら作ることができるんですが、スプレッドシート(SpreadSheet)だけはライブラリが別なんです。これがなんとも...。どうやら、ダウンロード処理については認証方法が異なるのかも(英語でわからず)。

Gdata APIsは、「Google Apps Platform — Google Developers」を参考に...なるのか、ならないのかよくわかりません。なにか深い森の中に入る感じでした。

とりあえず、これでGoogleドキュメントにデータを貯めてもダウンロードはできそうです。ちなみに、xlsや、pdfと指定した拡張子でファイルがダウンロード出来るのは素晴らしいところ

ソース

#!/usr/bin/env python
# -*- coding: utf-8 -*-
import gdata.docs.data
import gdata.docs.client
import gdata.docs.service
import gdata.spreadsheet.service

class SpreadSheet():
	email        = 'xxxxxxx'
	password     = 'xxxxxxx'
	document     = 'xxxxxxx'
	client       = ''

	def __init__(self):
		self.client = gdata.docs.service.DocsService()
		self.client.ClientLogin(self.email, self.password)

		query = gdata.docs.service.DocumentQuery()
		feed = self.client.Query(query.ToUri())

		for entry in feed.entry:
			print entry.title.text, entry.GetDocumentType(), entry.resourceId.text

			if self.document == entry.title.text:
				ss_client = gdata.spreadsheet.service.SpreadsheetsService()
				ss_client.ClientLogin(self.email, self.password)
				self.client.SetClientLoginToken(ss_client.GetClientLoginToken())

				self.client.Export(entry, './test.pdf')
				self.client.Export(entry, './test.xls')
				

ss = SpreadSheet()