Разбор значений .getRange () в функции Googles Sheets - PullRequest
0 голосов
/ 05 апреля 2020

Из-за проблем, связанных с накладными расходами, вместо чтения большой матрицы из ячейки листа за ячейкой я хотел бы загрузить общую матрицу в многомерный массив функции и затем иметь возможность доступа к любому значению в матрице. Я попробовал код ниже. Результаты прокомментированы ниже функции.

function Analyze() {

var ss = SpreadsheetApp.getActiveSpreadsheet();

var BondInputSS = ss.getSheetByName("BOND INPUT");

BondInputSS.activate();

var values = SpreadsheetApp.getActiveSheet().getRange("F9:BD57").getValues();

var data1 = values [4];
var data2 = values [4,3];

}

В отладчике значения кажутся массивом (51), где каждая общая строка является отдельной строкой. data1 также массив = 4-й ряд значений массива. data2 также массив = 3-й ряд значений массива.

В любом случае можно ли получить диапазон электронной таблицы непосредственно в массив, чтобы я мог получить массивы элементов управления для доступа к данным (например, data3 = values ​​[2,3] равно значению в смещении ячейки на (2 , 4) или значение в J11)

Ответы [ 2 ]

0 голосов
/ 06 апреля 2020

.getValues() возвращает двумерный массив. Получив его, вы получаете доступ к значениям, как если бы вы делали обычный JavaScript 2D массив.

var values = SpreadsheetApp.getActiveSheet().getRange("F9:BD57").getValues();

// values[0][0] = row 1, column 1
// values[0][1] = row 1, column 2
// values[1][0] = row 2, column 2
0 голосов
/ 06 апреля 2020

data1 = значения [4] [0]; data2 = values ​​[4] [3];

data1 даст 5-й строке первый столбец

data2 даст 5-й строке 4 столбец

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...