2016-04-01 36 views
11

Sono nuovo di Google Apps Script. Voglio ottenere il valore di una cella specifica in base al nome della colonna, non all'indice della colonna. Ecco quello che ho:Ottieni valori colonna per nome colonna non indice colonna

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

Invece di usare row[0], voglio usare il nome della colonna. C'è un modo semplice per farlo?

risposta

13

La seguente funzione ritenta il valore in una colonna con un nome specifico, in una determinata riga.

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]; 
    } 
} 

particolare, var col = data[0].indexOf(colName); guarda il nome dato nella riga superiore del foglio. Se viene trovato, viene restituito il valore nella riga specificata di quella colonna (row-1 viene utilizzato per tenere conto degli indici JavaScript basati su 0).

Per verificare che questo funziona, provare qualcosa di simile

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

Questo funzionava a meraviglia! Grazie mille per l'aiuto. –