2010-09-24

Google Spreadsheet API Note

스프레드시트 리스트 읽어오기

client = gdata.spreadsheets.client.SpreadsheetsClient()

feed = client.get_spreadsheets()

내부적으로 다음과 같은 URL 을 사용한다.

http://spreadsheets.google.com/feeds/spreadsheets/private/full

특정 스프레드 시트의 워크 시트 리스트 읽어오기

feed = client.get_worksheets(spreadsheet_key)

내부적으로 

http://spreadsheets.google.com/feeds/worksheets/<키>/private/full

특정 워크 시트를 리스트 기반으로 읽어오기

이건 gdata.spreadsheets.client 에서 지원하지 않는다.

url = "https://spreadsheets.google.com/feeds/list/%s/%s/private/full" % (spreadsheet,worksheet) 
feed = client.get_feed(url, desired_class = gdata.spreadsheets.data.ListsFeed)

이렇게 읽어온 feed.entry 에서 적당한 필드를 잘 읽어내야 한다. 내부적으로는 XML 이므로 다음과 같이 읽을 것. 잘 안읽히면 feed 를 그대로 출력해서 어떤 값이 있는지 보면 된다.

  • entry.id.text
  • entry.title.text
  • entry.content.text: ListsFeed 로 읽어왔을 때 row 의 값들이 문자열로 들어가 있다.
  • entry.get_elements(namespace=GSX_ELEMENT): 컬럼은 gsx: 태그로 들어가 있으므로, iterating 할 때에는 이걸 써야 한다.
  • entry.get_value(column name): 이미 이름을 알고 있을때..

핵심은,

  • 구글 스프레드 시트의 모든 문서, 워크시트, row, cell 들은 유니크한 URL 을 가진다. 
  • 적당한 URL 로 요청하면 ATOM XML 등으로 리턴한다.
  • gd_client.get_feed 에 URL 을 넘기고 desired_class 를 잘 지정하면, 적당한 파이썬 객체로 래핑된다.
  • 어떤 XML 이 리턴되는지만 잘 파악하면 끗.

comments powered by Disqus