2016-07-18 2 views
0

Ich habe eine Google-Tabelle, die ich öffentlich gemacht habe und alle und wollen daraus zu einem JS-Array gehen. Ich habe damit gespielt und versucht, es in ein JSON und dann in ein Array umzuwandeln, aber ich habe kein Glück. Gibt es eine Möglichkeit, von meiner Tabelle zu einem 2D-JS-Array zu gehen, auf dem ich Funktionen ausführen kann?Von einer Google-Tabelle in ein JS-Array gehen

Also, wenn die Tabelle wie folgt aussieht:

NAME COLOR SIZE 
MARK BLUE  6 
DAVE RED  8 

Das Array wird ein 2D-Array sein, so dass Wert [0] [0] MARK sein wird, [1] [0] BLUE sein wird und [ 0] [1] wird DAVE usw.

Jede Hilfe wäre viel

Antwort

0

Es gibt zwei Methoden in Gas, das zum Lesen von Werten in Zellen ermöglichen geschätzt. Sie sind .getValue() und .getValues(). Wie es impliziert ist, ruft .getValue() nur den Wert der oberen linken Zelle in einem Bereich ab. .getValues() ruft ein 2D-Array aller Werte in Ihrem Bereich ab.

Der folgende Code definiert die Variablen, die zum Lesen des folgenden Bereichs erforderlich sind. Der Bereich ist (ausgehend von Ihrem Beispiel) so definiert, dass er bei der zweiten Zeile beginnt (die Kopfzeile ignoriert), und zwar für 3 Spalten und bis zur letzten Zeile mit Inhalt.

Sie werden feststellen, dass wir .getLastRow() finden, aber dann die Anzahl der zu lesenden Zeilen als lastRow - 1 definieren. Dies liegt daran, .getLastRow() gibt uns die Position der letzten Zeile mit Daten; oder einfacher gesagt, eine Ganzzahl von wie viele Zeilen Daten haben. Wenn wir 20 Zeilen mit Daten haben, gehört dazu auch die Kopfzeile, die wir gerne ignorieren würden. Das Lesen von 20 Zeilen nach dem Verschieben unseres Bereichs um eine Zeile schließt die erste leere Zeile ein. Das Lesen von 19 Zeilen stoppt stattdessen nach dem Lesen der letzten datengefüllten Zeile.

Beachten Sie, dass .getRange() den Eingang .getRange(startRow, startColumn, numRows, numColumns) erfordert. Dies kann mit mehr Details und Erklärung in dem Gasreferenzblatt here

function myFunction() { 
    var ss = SpreadsheetApp.getActiveSpreadsheet(); 
    var sheet = ss.getActiveSpreadsheet(); 
    var lastRow = sheet.getLastRow(); 
    var range = sheet.getRange(2, 1, (lastRow - 1), 3); 
    var dataArray = range.getValues(); 
} 

Werte in diesem Array gefunden werden können dann aufgerufen werden, definiert, liest, etc., wie Sie Javascript erwarten. Sie werden in der GAS-Referenz finden, dass viele Methoden eine Singular- und Pluralversion wie .getBackground() und .getBackgrounds() haben. Diese verhalten sich in der gleichen Weise wie .getValue() gegenüber .getValues().

Es kann auch hilfreich sein, dass auch zu beachten, wenn Ihr Bereich eine einzigartige Reihe aber viele Spalten ist, .getValues() gibt Ihnen ein 2D-Array, in dem alle Werte mit [0] beginnen wird als die einzig mögliche Wert für Zeile 0 ist

Verwandte Themen