2013-07-31 239 views
1

我是新手脚本,我会很感激你的帮助。我为可能是一个简单的问题而道歉。谷歌脚本 - json到谷歌表

我所拥有的是一个API,让JSON:

[{ “ID”: “XYZ”, “名”: “XY”}, { “ID”: “ZYX”, “名” :“yx”}]

上面继续让我们再说100个ID。

我想要的是把它放入谷歌电子表格中的单元格。

什么我现在是:

var ss = SpreadsheetApp.getActive(); 
var sh = ss.getActiveSheet(); 
var rr = sh.getRange(3,2,100,5); 

var id = "www.xyz.com/api"; 
var jsonData = UrlFetchApp.fetch(id); 
var jsonString = jsonData.getContentText(); 
var idsearch = JSON.parse(jsonString); 

for (var i = 1; i < idsearch.count; i++) 
    { 
    var cellid = rr.getCell(i,1); 
    eventid.setValue(idsearch.results[i].id); 
    var cellname = rr.getCell(i,2); 
    eventname.setValue(idsearch.results[i].name); 
    } 

当我运行该脚本,没有任何反应。它不会返回任何东西。

我在脚本中犯了错误吗?是否有更简单的方法将所有json结果放入Google表格中?有没有一个例子可以让我了解我想要做的事情?

非常感谢。

回答

6

我希望这个简单的代码可以帮助你。

function myFunction() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheets = ss.getSheets(); 
    var sheet = ss.getActiveSheet(); 

    var dataSet = [ 
    {"id":"xyz","name":"xy"}, 
    {"id":"zyx","name":"yx"} 
    ]; 
    var rows = [], 
     data; 

    for (i = 0; i < dataSet.length; i++) { 
    data = dataSet[i]; 
    rows.push([data.id, data.name]); 
    } 

    dataRange = sheet.getRange(1, 1, rows.length, 2); 
    dataRange.setValues(rows); 

} 

enter image description here

+1

This Works,thank you。现在想一想:D快速问题,var rows = [],data;工作?我试图寻找..然后意识到不知道我在寻找什么。再次感谢您的帮助。 – Az37

+0

这个解决方案对于可以有12000-18000个ID的JSON是可行的,因为我们知道Google App脚本的最大执行时间为5分钟。 –