【问题标题】:Query specific sheets of a google spreadsheet查询谷歌电子表格的特定工作表
【发布时间】:2013-11-13 00:08:01
【问题描述】:

我正在尝试使用 google 电子表格作为临时数据库。我已按照以下教程中的说明进行操作,一切正常

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

获取我在下面复制的数据以供参考的 jquery

我想知道是否有可能(使用相同或相似的代码),假设电子表格中有多个工作表,一次只能查询一个。因此,例如,您可以运行以下代码,但仅适用于第 4 页。

我尝试在数字代码的末尾添加来自网络 URL 的工作表参考号(即#gid=1),所以

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>

【问题讨论】:

    标签: database json google-sheets


    【解决方案1】:

    好的,我有一个解决方案供任何感兴趣的人使用,尽管它不像我希望的那样明智

    感谢下面的博文

    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。它似乎没有清晰的逻辑,但更改它会从特定工作表中吐出数据,因此它可以工作。

    【讨论】:

      【解决方案2】:

      我意识到这是一个旧帖子,但我已经为此奋斗了一段时间。我建立了自己的库来处理这个问题,我希望这可以节省人们很多时间的研究和使用 google api。一般格式几乎是来自谷歌文档的逐字记录,我删除了错误检查以保持简洁。我在谷歌文档中找不到的是如何查询不是第一个标签的标签。我想这就是我们在这里寻找的。​​p>

      根据你已有的,这应该回答它。

      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']});

      【讨论】:

      • 我试过了,它仍然显示第一个(默认)选项卡数据。有人可以确认此代码按原样工作吗?
      猜你喜欢
      • 1970-01-01
      • 2016-05-18
      • 1970-01-01
      • 1970-01-01
      • 2018-03-12
      • 1970-01-01
      • 2019-05-20
      • 2015-10-15
      • 1970-01-01
      相关资源
      最近更新 更多