获取谷歌电子表格作为JSONP的新版本

这个职位也可在: 英语 俄语 西班牙语 葡萄牙语(葡萄牙) 法语 阿拉伯语 德语 日语

< 警告 >
我建议你​​获得额外的谷歌帐户仅用于公众。因为如果你按照我的步骤,您的Gmail地址将是对公共JSONP文件。

< 新版Google表格 >
谷歌电子表格的老版本可以共享电子表格为XML,JSON和某种格式。我想新的版本没有这样的共享功能。但是,我发现谷歌电子表格的新版本很好的解决方案上的StackOverflow的问题的答案。
Unable to publish specific cells in new Google Spreadsheets – StackOverflow ( 用英语 )
根据以上的页面,这个API是一种旧的API。没有人知道,当它停止。我不在乎这种情况。但是,如果你不喜欢的情况,我不建议你使用这个API。

< URL格式 >

https://spreadsheets.google.com/feeds/cells/[ 您的电子表格的关键 ]/od6/public/values?min-row=[ 开始行号 ]&max-row=[ 结束行数 ]&min-col=[ 开始列数 ]&max-col=[ 结束列号 ]&alt=json-in-script&callback=[ 回调函数名 ]

< 如何使用它? >
JSONP格式很容易在JavaScript中使用。没有人需要解析器。但我想使用URL生成器来使API更加有用。所以我开发了从转换页面参数到URL参数下谷歌的语法的脚本。

< jQuery插件 >
我开发了一个名为 “generateGoogleJsonpUri” 这个jQuery插件。
generateGoogleJsonpUri – github
我创建示例页面就像一个博客框架来测试我的插件。
https://mecrazy.net/sample/generateGoogleJsonpUri/
如果你愿意,请复制其源作为一个例子。

< 用法 – 铸件 >
铸造语法为

var test = $.genJsonpGDU("<把你的电子表格关键就在这里>");

var test = $.genJsonpGDU({key:"<把你的电子表格关键就在这里>"});

你可以找到一个关键在电子表格中的URL。这是我下面的示例。
spreadsheet_sample_001
关于这个图片,URL是 “https://docs.google.com/spreadsheets/d/1IG2QEOXehU01b6DoMQi19CvFpm2EZJOUM2y4lqXKduw/edit#gid=0″。关键我的电子表格是 “1IG2QEOXehU01b6DoMQi19CvFpm2EZJOUM2y4lqXKduw”。请检查您的电子表格的网址,让您的密钥。

< 用法 – 配置寻呼机 >

test.pager({
  startRow:2,//行号开始得到 (需要)
  minCol:2,//列号开始得到 (需要)
  maxCol:7,//最后得到的列号 (需要)
  recsPerPage:5//在一个页面记录 (可选)
});

请比较上面的语法和下表。当你看到下面的表格,请想象一下Excel或任何形式的电子表格。语法上面表示第一页的范围是粉红色的范围,第二页是绿色的范围。 “B2:G2″ 是第一条记录。”B6:G6” 是第五记录。

A1 B1 C1 D1 E1 F1 G1 H1
A2 B2 C2 D2 E2 F2 G2 H2
A3 B3 C3 D3 E3 F3 G3 H3
A4 B4 C4 D4 E4 F4 G4 H4
A5 B5 C5 D5 E5 F5 G5 H5
A6 B6 C6 D6 E6 F6 G6 H6
A7 B7 C7 D7 E7 F7 G7 H7
A8 B8 C8 D8 E8 F8 G8 H8
A9 B9 C9 D9 E9 F9 G9 H9
A10 B10 C10 D10 E10 F10 G10 H10
A11 B11 C11 D11 E11 F11 G11 H11
A12 B12 C12 D12 E12 F12 G12 H12
A13 B13 C13 D13 E13 F13 G13 H13

< 用法 – 获取页面的URL >
这是一个例子,得到第一页的URL。

var pageUrl = test.page(1);

( “test.pager(客体)” 是执行该功能之前需要。 )

< 用法 – 执行Ajax >
参数为 “test.ajax” 相同 “http://api.jquery.com/jQuery.ajax/“。

test.ajax({
  url:test.page(1),
  success:function(json){
    console.log(json);
  }
});

如果你想知道当前页面上一页或下一页,请在 success 功能,检查参数使用 “test.get()”。
If you want to know current page has previous page or next page, please use “test.get()” in success function and check parameters.

test.ajax({
  url:test.page(1),
  success:function(json){
    console.log(json);
    var param = test.get();
    if(param.pager.prev){
      console.log('当前页面有上一页。');
    }else{
      console.log('当前页面没有上一个页面。');
    }
    if(param.pager.next){
      console.log('当前页面翻页。');
    }else{
      console.log('当前页没有翻页。');
    }
  }
});

< 用法 – JSON转换为二维数组 >
“test.jsonToArr” 把来自谷歌的JSON格式,以二维数组。

test.ajax({
  url:test.page(1),
  success:function(json){
    var arr2d = test.jsonToArr(json);
    console.log(arr2d);
  }
});

< 用法 – 变量缓存 >
如果你想使用JavaScript变量来启用分页缓存,请按照下面的语法。

test.set({cache:true});

这种说法切换到使用缓存分页。它会检查更新日期JSONP每20分钟的默认。如果日期改变,它会自动清除缓存。如果你想改变的时间间隔,检查日期。你可以用它代替上面的语法类似下面的语法。

test.set({
  cache:true,
  cacheInterval:{
    sec:0,min:50,hour:0
  }
});

< 后记 >
有新的和旧的谷歌电子表格之间的基本区别。

 
最大的细胞 2000000细胞 400000细胞
最大列 无限 每张256列

我认为新版本是令人难以置信的大,免费的数据库。我想找到新的谷歌电子表格有趣的用法。