Je suis nouveau sur Google Apps Script. Je veux obtenir la valeur d'une cellule spécifique par son nom de colonne, pas son index. Voici ce que j'ai:
var rows = sheet.getDataRange();
var values = rows.getValues();
var row =values[1];
var rowStaffName = row[0];
À la place d'utiliser row[0]
, Je veux utiliser le nom de la colonne. Existe-t-il un moyen facile de le faire?
La fonction suivante réessaye la valeur dans une colonne avec un nom donné, dans une ligne donnée.
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];
}
}
Plus précisément, var col = data[0].indexOf(colName);
recherche le nom donné dans la ligne supérieure de la feuille. S'il est trouvé, la valeur dans la ligne donnée de cette colonne est retournée (row-1
Est utilisé pour tenir compte des index JavaScript basés sur 0).
Pour tester que cela fonctionne, essayez quelque chose comme
function test() {
Logger.log(getByName('Price', 4)); // Or whatever name or row you want
}
On pourrait également avoir besoin d'une fonction qui renvoie la colonne entière d'un nom donné, pas seulement une seule cellule. Cette variation de l'autre réponse a bien fonctionné à cette fin:
function getByName(colName, sheetName) {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName);
var data = sheet.getRange("A1:1").getValues();
var col = data[0].indexOf(colName);
if (col != -1) {
return sheet.getRange(2,col+1,sheet.getMaxRows()).getValues();
}
}