1

ワークシートの順序は任意に変更できますが、タイトルは変更できないスプレッドシートを作成します。スプレッドシート内のすべてのワークシートのタイトルを一覧表示し、関連する worksheet_id を見つけたいと考えています。

# Google Docs Login information
gd_client = gdata.spreadsheet.service.SpreadsheetsService()
gd_client.email = 'username'
gd_client.password = 'password'
gd_client.source = 'SO demo'
gd_client.ProgrammaticLogin()
# Obtain list feed of specific worksheet. 
feed = gd_client.GetListFeed(spreadsheet_id, worksheet_id)

ワークシートの順序がわからないが、ワークシートのタイトルはわかっている場合、正しい worksheet_id を取得するにはどうすればよいですか?

4

2 に答える 2

3

このウェブサイトから変更された私自身の質問への簡単な回答。

def PrintFeed(feed):
  for i, entry in enumerate(feed.entry):
    print '%s %s' % (entry.id.text.split('/')[-1], entry.title.text)

def worksheet_dict(feed):
  d = defaultdict(str)
  for i, entry in enumerate(feed.entry):
    d[entry.title.text] = entry.id.text.split('/')[-1] 
  return d

s = gd_client.GetWorksheetsFeed(key=spreadsheet_id)
PrintFeed(s)
wkst_dict = worksheet_dict(feed)
print wkst_dict
于 2012-05-03T17:45:56.337 に答える
3

よりクリーンな方法:

import urlparse
import os

def worksheet_ids(feed):
  def _id(entry):
    split = urlparse.urlsplit(entry.id.text)
    return os.path.basename(split.path)
  return dict([
    (entry.title.text, _id(entry))
    for entry in feed.entry
    ])
于 2012-10-17T09:10:08.120 に答える