2016-04-03 63 views
2

我正在嘗試做一些超出我的初級編碼功能的事情。我創建了一個將API數據解析到Google Spreadsheet的函數,但無論我嘗試了什麼(並在網上搜索答案),結果都只會發佈到單個列中。Google Spreadsheet - 將值返回到多列

我使用目前的代碼是:

function getAPIdata (URL,key){ 
    var apiurl = "https://example.com/Site/"+URL+"/students?&ID="+key 
    var rank_data = parse(apiurl) 
    var result = [] 
    var data_dictionary = rank_data.Student 
    for (var i in data_dictionary){ 
    result.push(data_dictionary[i].Name) 
    result.push(data_dictionary[i].Grade) 
    } 
    return result 
} 

問題正被解析的數據是

Student": [ 
{ 
    "Name": ​Adam, 
    "Grade": 75 
}, 
{ 
    "Name": ​Alan, 
    "Grade": 90 
} 

正在發生的事情是,當我調用該函數在Excel中我得到一個單列與:

Adam 
75 
Alan 
90 

我想要做的是有以下(空格在這裏deline吃了另一列)

Adam 75 
Alan 90 

基本上,我有一個1x4輸出,我想要一個2x2輸出。無論如何,我可以做到這一點?我意識到我可以每次調用該函數兩次並推送不同的數據集,但在這種情況下,我只能針對所有數據調用一次API。我想過可能會拉取數據,緩存數據,但在深入研究一條不會結果的道路之前,我希望這裏的一些專家能夠權衡。

感謝您的閱讀!

回答

0

我認爲你可以使用[],每次推一排,像

function getAPIdata (URL,key){ 
    var apiurl = "https://example.com/Site/"+URL+"/students?&ID="+key 
    var rank_data = parse(apiurl) 
    var result = [] 
    var data_dictionary = rank_data.Student 
    for (var i in data_dictionary){ 
    result.push([data_dictionary[i].Name, data_dictionary[i].Grade]) 
    } 
    return result 
} 
+0

這是驚人的 - 就像一個魅力!我需要閱讀這個來理解邏輯 - 謝謝Olof –