2016-04-01 13 views
11

Ich bin neu bei Google Apps Script. Ich möchte den Wert einer bestimmten Zelle anhand des Spaltennamens und nicht anhand des Spaltenindex ermitteln. Hier ist, was ich habe:Abrufen von Spaltenwerten nach Spaltenname und Spaltenindex

var rows = sheet.getDataRange(); 
var values = rows.getValues(); 
var row =values[1]; 
var rowStaffName = row[0]; 

Statt mit row[0], ich mag die Spaltennamen verwenden. Gibt es einen einfachen Weg, das zu tun?

Antwort

13

Die folgende Funktion wiederholt den Wert in einer Spalte mit einem bestimmten Namen in einer bestimmten Zeile.

function getByName(colName, row) { 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    var data = sheet.getDataRange().getValues(); 
    var col = data[0].indexOf(colName); 
    if (col != -1) { 
    return data[row-1][col]; 
    } 
} 

Insbesondere var col = data[0].indexOf(colName); sieht den gegebenen Namen in der oberen Reihe des Blattes auf. Wenn es gefunden wird, wird der Wert in der angegebenen Zeile dieser Spalte zurückgegeben (row-1 wird verwendet, um zu berücksichtigen, dass JavaScript-Indizes 0-basiert sind).

Um zu testen, dass dies funktioniert, versuchen Sie so etwas wie

function test() { 
    Logger.log(getByName('Price', 4)); // Or whatever name or row you want 
} 
+0

Dieses wunderschön gearbeitet! Vielen Dank für die Hilfe. –

Verwandte Themen