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 回答