Получить значения столбца по имени столбца, а не индексу столбца

Я новичок в Google Apps Script. Я хочу получить значение конкретной ячейки по имени столбца, а не по индексу столбца. Вот что я имею:

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

Вместо использования row[0], я хочу использовать имя столбца. Есть ли простой способ сделать это?

Ответ 1

Следующая функция повторяет значение в столбце с заданным именем в данной строке.

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

В частности, var col = data[0].indexOf(colName); просматривает указанное имя в верхней строке листа. Если он найден, то возвращается значение в данной строке этого столбца (row-1 используется для учета индексов JavaScript, базирующихся на 0).

Чтобы проверить, что это работает, попробуйте что-то вроде

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