2014-07-09 2 views
4

google spreadsheet feeds api를 사용하여 여러 시트에서 피드를 가져 오는 방법은 무엇입니까? 아래 URL은 첫 번째 시트의 피드 만 가져옵니다. 내 spreadsheet에서 나는 3 work sheets을 가지고 있으며 나머지 시트 데이터도 가져오고 싶습니다.여러 개의 워크 시트가있는 Google 스프레드 시트 피드

 
https://spreadsheets.google.com/feeds/list/XXXXMYKEYXXXX/od6/public/values?alt=json-in-script 

가져 오는 방법은 무엇입니까?

내가 성공하지 않고 아래 시도 :

 
https://spreadsheets.google.com/feeds/list/XXXXMYKEYXXXX/od7/public/values?alt=json-in-script 

od7 대신

od6의 UPDATE 스프레드 시트 피드 URL은 TopicB 내가 TopicA이 스프레드 시트에서 https://spreadsheets.google.com/feeds/list/1c53H0piyduOV6zRwS54A7MDZ3SooJOmj4O52Xd0dyIA/od6/public/values?alt=json-in-script

입니다 , TopicC 장. 피드 응답에는 TopicA 정보 만 포함됩니다. the Google Spreadsheets API

+0

내 대답은 내 대답을 참조하십시오. 다른 워크 시트는 해당 URL에 있습니다. –

답변

17

워크 시트 ID는 1에서 n까지 번호가 매겨지고 od6, od7과는 다릅니다. 는 URL을 아래로하여, 나는
https://spreadsheets.google.com/feeds/list/1c53H0piyduOV6zRwS54A7MDZ3SooJOmj4O52Xd0dyIA/1/public/values?alt=json가 첫 번째 워크 시트를
https://spreadsheets.google.com/feeds/list/1c53H0piyduOV6zRwS54A7MDZ3SooJOmj4O52Xd0dyIA/2/public/values?alt=json 2 시트
https://spreadsheets.google.com/feeds/list/1c53H0piyduOV6zRwS54A7MDZ3SooJOmj4O52Xd0dyIA/3/public/values?alt=json 3 시트 등

참고를 가져 개별 워크 시트의 데이터를 얻을 수있었습니다 키 (1c53H0piyduOV6zRwS54A7MDZ3SooJOmj4O52Xd0dyIA)의 후 /1, /2/3 url

+0

을 첨부 해 주셔서 감사합니다. 얼마나 많은 시트가 스프레드 시트에 있는지 알 수 있습니까? 예를 들어 내 사용자는 2 명이지만 그 사람들이 계속 추가 할 수 있기를 원하므로 각 시트에 대해 데이터를 제공하라는 루프를 실행하고 싶습니다. 이것이 가능한지 아십니까? – ak85

+1

@ ak85 본인의 요구 사항에 대한 워크 시트 접근법을 진행하지 않았습니다. 나는'json' 콘텐츠와 워크 시트 접근 방식을 사용하여 소량의 json 데이터에 대해 네트워크를 통한 많은 바이트 교환을 원했습니다. 대신 나는 필요한 파이썬을 반환하기 위해 간단한 파이썬 애플리케이션을 작성했다. 죄송합니다. 의견에 귀하의 질문에 답변하지 않습니다. 워크 시트 솔루션이 내 요구 사항을 충족시키지 않았기 때문에 많은 것을 탐색하지 않았습니다. –

+0

감사합니다! 왜 내가 설명서에서 이것을 찾을 수 없었을까요? –

3

:

에서, 이전 섹션에 설명 된대로 스프레드 시트의 스프레드 시트의 항목이, 공급 것을 을 찾을 피드 주어진 스프레드 시트의 워크 시트의 URL을 확인합니다. 그런 다음 rel = "http://schemas.google.com/spreadsheets/2006#tablesfeed"링크 요소를 확인하십시오. 그 요소의 href 값은 해당 스프레드 시트의 워크 시트 피드의 URL을 제공합니다. • 그래도 URL에 요청을 GET

적절한 인증 헤더와 함께, 문제, 주어진 스프레드 시트에서 워크 시트의 목록을 요청하려면 다음

https://spreadsheets.google.com/feeds/worksheets/key/private/full

GET 반환 된 결과가 각각의 URL이 포함 그 스프레드 시트의 워크 시트는 데이터를 가져올 각 워크 시트의 정보를 가져올 수 있습니다. 따라서 예에서 od6은 유효한 워크 시트 ID이지만 스프레드 시트의 피드에서 다른 워크 시트 ID를 식별해야합니다.

+0

응답 해 주셔서 감사합니다. 피드에 다른 워크 시트 정보가 표시되지 않습니다. 피드 응답을 확인하기 위해 실제 URL로 질문을 업데이트했습니다. –

+0

해당 URL은 스프레드 시트 피드가 아니며 특정 워크 시트 TopicA의 목록 피드입니다. –

+0

다음은 스프레드 시트 피드의 URL입니다. https://spreadsheets.google.com/feeds/worksheets/1c53H0piyduOV6zRwS54A7MDZ3SooJOmj4O52Xd0dyIA/public/full –

1

suman j의 답을 바탕으로 jQuery를 사용하여 얼마나 많은 지에 관계없이 여러 장을로드하는 방법이 있습니다.

스프레드 시트의 기본 JSON 피드를로드하고 반환 된 JSON의 각 시트에 대한 URL을 찾아서 조금 수정 한 다음로드하십시오.그런 다음 모두 ajaxStop을 사용하여 모두로드가 끝나야하는 모든 작업을 수행하십시오.

$(function(){ 
    var feedurl_start = "https://spreadsheets.google.com/feeds/"; 
    var feedkey = "1c53H0piyduOV6zRwS54A7MDZ3SooJOmj4O52Xd0dyIA"; 

    $.getJSON(feedurl_start+"worksheets/"+feedkey+"/public/basic?alt=json", function(sheetfeed) { 
     $.each(sheetfeed.feed.entry, function(k_sheet, v_sheet){ 
      var sheeturl = v_sheet.link[0]["href"]+"?alt=json"; 
      sheeturl = sheeturl.replace("basic", "values"); 
      var sheet_title = v_sheet.content["$t"]; // to know which sheet you're dealing with 
      console.log(sheet_title); 
      $.getJSON(sheeturl, function(sheetjson){ 
       console.log(sheetjson); 
      }); 
     }); 
    }); 
}); 

// Since you're making multiple AJAX calls, use ajaxStop 
// to do whatever you need to do AFTER everything is loaded 
$(document).ajaxStop(function() { 
    // now all your data is loaded, so you can use it here. 
});