有没有使用jquery获取Google Doc SpreadSheet的JSON数据而不公开doc的方法?

时间:2011-09-23 10:38:25

标签: javascript jquery json google-docs google-docs-api

我正在尝试使用javascript和jQuery从Google Doc电子表格中获取数据,以便对数字进行一些数学计算。

对于公共电子表格,我得到了下一个代码:

function getdata( key, wid, f )
{
    return $.getJSON(
        '//spreadsheets.google.com/feeds/cells/' +
         key + '/' + wid + '/public/basic?alt=json-in-script&callback=?',
            function( data ){
                    /* the content of this function is not important to the question */
                    var entryidRC = /.*\/R(\d*)C(\d*)/;
                    var retdata = {};
                    retdata.mat = {};
                    for( var l in data.feed.entry )
                    {
                            var entry = data.feed.entry[ l ];
                            var id = entry.id.$t;
                            var m = entryidRC.exec( id );
                            var R,C;
                            if( m != null )
                            {
                                    R = new Number( m[ 1 ] );
                                    C = new Number( m[ 2 ] );
                            }
                            var row = retdata.mat[ R ];                                                                                                                           
                            if( typeof( row ) == 'undefined' )                                                                                                                    
                                    retdata.mat[ R ] = {};                                                                                                                        
                            retdata.mat[ R ][ C ] = entry.content;                                                                                                                
                    }                                                                                                                                                             
                    if( typeof( f ) != 'undefined' )                                                                                                                              
                            f( retdata )                                                                                                                                          
                    else                                                                                                                                                          
                            console.log( retdata );                                                                                                                               
            }                                                                                                                                                                     
    );
}

当试用私有的时,我得到了XML数据(使用URL: '//spreadsheets.google.com/feeds/cells/'+ key + '/' + wid + '/private/basic')。此测试还会检查当前用户的可用性,防火墙,权限设置和登录状态。

但添加最后一部分:?alt=json-in-script&callback=f以获取JSON中的数据,抛出 Not found,Error 404 。 (如果仅添加alt=json,也会得到)。

情况摘要:

       public     private
XML     yes         yes
JSON    yes       Question

http://code.google.com/intl/es/apis/gdata/docs/json.html

中介绍了 JSON对谷歌的使用

使用 google电子表格api 进行了描述 http://code.google.com/intl/es/apis/spreadsheets/data/3.0/reference.html#WorksheetFeed

如何使用javascript获取GDoc SpreadSheet的JSON数据而不公开该文档?

提前致谢

1 个答案:

答案 0 :(得分:6)

Note: Retrieving a feed without authentication is only supported for published spreadsheets.

羞耻,因为这将是一个非常有用的功能。事实上,我很高兴知道这至少可以从已发表的文档中获得。