2016-04-03 8 views
2

Ich versuche etwas zu tun, das meine Fähigkeiten als Junior-Programmierer übersteigt. Ich habe eine Funktion erstellt, die API-Daten in Google Spreadsheet parst, aber unabhängig davon, was ich versucht habe (und online nach Antworten gesucht habe), werden die Ergebnisse nur in einer einzigen Spalte veröffentlicht.Google Spreadsheet - Werte in mehrere Spalten zurückgeben

Der Code, den ich zur Zeit benutze, ist:

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 
} 

Die Daten in Frage, die

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

Was geschieht, ist, analysiert wird, ist, dass, wenn ich die Funktion in Excel nenne ich bin immer eine einzelne Spalte mit:

Adam 
75 
Alan 
90 

Was ich möchte folgende (spaces hier deline zu tun haben aß eine andere Spalte)

Grundsätzlich habe ich einen 1x4-Ausgang und ich möchte einen 2x2-Ausgang. Kann ich das überhaupt machen? Mir ist klar, dass ich die Funktion zweimal aufrufen kann und jedes Mal verschiedene Datensätze pushen kann, aber in diesem Fall kann ich die API nur einmal für alle Daten aufrufen. Ich dachte darüber nach, die Daten möglicherweise zu ziehen, sie zu cachen, aber bevor ich einen Pfad durchforste, der keine Früchte trägt, hoffte ich, dass einige der Experten hier eingewogen werden könnten.

Danke fürs Lesen!

Antwort

0

Ich glaube, Sie können [] und eine Zeile zu einem Zeitpunkt drücken, wie

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

Das ist erstaunlich - wirkt wie ein Zauber! Ich muss das lesen, um die Logik zu verstehen - danke Olof –

Verwandte Themen