4

Google スプレッドシートを一時データベースとして使用しようとしています。次のチュートリアルの指示に従いましたが、すべて正常に動作しています

http://www.alatechsource.org/blog/2012/05/using-the-google-spreadsheets-data-api-to-build-a-recommended-reading-list-code-words.h

参照用に以下にコピーしたデータを取得するjquery

スプレッドシート内に複数のシートがあり、一度に 1 つずつクエリを実行できると仮定すると、(同じまたは類似のコードを使用して) 可能かどうか疑問に思いました。たとえば、次のコードを実行できますが、たとえばシート 4 に対してのみ実行できます。

数値コードの末尾に Web URL (つまり #gid=1) からシート ref # を追加しようとしたので、

" https://spreadsheets.google.com/feeds/list/0Ak0qDiMLT3XddHlNempadUs1djdkQ0tFLWF6ci1rUUE/od6/public/values?alt=json-in-script&callback= ?"

になる

" https://spreadsheets.google.com/feeds/list/0Ak0qDiMLT3XddHlNempadUs1djdkQ0tFLWF6ci1rUUE#gid=1/od6/public/values?alt=json-in-script&callback= ?"

しかし、これは機能しません。コードは最初のシートのみをループしているようです

誰でもこれについてアドバイスできますか?

どんな助けでも大歓迎です

<script type="text/javascript"> 
$(document).ready(function() {  

//source file is https://docs.google.com/spreadsheet/ccc?    key=0Ak0qDiMLT3XddHlNempadUs1djdkQ0tFLWF6ci1rUUE   
$(function listBooks() {    

$.getJSON( "https://spreadsheets.google.com/feeds/list/0Ak0qDiMLT3XddHlNempadUs1djdkQ0tFLWF6ci1rUUE/od6/public/values?alt=json-in-script&callback=?",

function (data) {   

    $('div#book-list').append('<ul class="items"></ul>');

    $.each(data.feed.entry, function(i,entry) { 

        var item = '<span style="display:none">' + entry.id.$t + '</span>'; 

        item += '<img src="http://covers.openlibrary.org/b/isbn/' + entry.gsx$isbn.$t + '-S.jpg"/>';

        item += '<span class="meta"><a href="http://www.worldcat.org/isbn/' + entry.gsx$isbn.$t + '">' + entry.title.$t + '</a>';   

        item += '<br/>Author: ' + entry.gsx$author.$t;  

        if (entry.gsx$notes.$t) {   

            item += '<br/>Description: ' + entry.gsx$notes.$t;  

        }   

        $('.items').append('<li>' + item + '</span></li>'); 

        });

    });

});

   });


   </script>
4

2 に答える 2

6

わかりました、私が望んでいたほど賢明ではありませんが、興味のある人のための解決策があります

以下のブログ投稿のおかげで

http://damolab.blogspot.co.uk/2011/03/od6-and-finding-other-worksheet-ids.html

特定のシートの ID は URL の /od6/ 部分であり、od6 は最初のデフォルトのシートに付けられたデフォルト名のようです

" https://spreadsheets.google.com/feeds/list/0Ak0qDiMLT3XddHlNempadUs1djdkQ0tFLWF6ci1rUUE/od6/public/values?alt=json-in-script&callback= ?"

上記のブログ投稿には、必要に応じて特定のシートの ID を見つける方法の例があります。明確なロジックはないようですが、変更すると特定のシートからデータが吐き出されるため、機能します。

于 2013-11-13T01:44:05.840 に答える
2

これは古い投稿だと思いますが、しばらくの間これと戦ってきました。これを処理するために独自のライブラリを作成しました。これにより、誰かが何時間もの研究とGoogle APIで遊ぶ時間を節約できることを願っています. 一般的な形式は、Google ドキュメントのほぼそのままであり、簡潔にするためにエラー チェックを削除しました。Google ドキュメントで見つけられなかったのは、最初のタブではないタブをクエリする方法でした。これが私たちがここで探しているものだと思います。

あなたがすでに持っているものに基づいて、これはそれに答えるはずです。

table_name_here/gviz/tq?sheet=tab_name_here

あなたの後に来るすべての人々の例として:

https://docs.google.com/spreadsheets/d/17mbdvl1jVpqj42E3BSX34q9XUA2PbYubYKpVeypbHLA/gviz/tq?sheet=Sheet1 これは、以下のコードで table_string として使用できます。

'SELECT *' これは、以下のコードで query_string として使用できます。

コンテキスト内:

function gimmeATable(){ var query = new google.visualization.Query('table_string'); query.setQuery('query_string'); query.send(handleQueryResponse); }

function handleQueryResponse(response){ var data = response.getDataTable; drawTable(data); }

function drawTable(data){ var table = new google.visualization.Table(document.getElementById('div1')); table.draw(data, {showRowNumber: true}); }

また、Google API とパッケージ タイプを含めることを忘れないでください。これには、テーブルのみが必要です。

<script type="text/javascript" src="https://www.google.com/jsapi"></script> google.load("visualization", '1', {packages:['table']});

于 2015-02-04T05:22:39.620 に答える