getValues()とは
getValues()は指定した範囲の値を2次元配列で返す。
例えば下図の場合はsheet.getRange('A1:B5').getValues();で取得すると、以下のように2次元配列で取得できる。

function myFunction() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheets()[0];
const result = sheet.getRange('A1:B5').getValues();
Logger.log(result);
// [[foo, ], [bar, ], [baz, hoge], [, fuga], [, ]]
Logger.log(result[2][1]);
// hoge
}
2次元配列を1次元配列にまとめる
前述のようにresult[2][1]のようにして特定の値を指定したい場合は2次元配列でも良いが、1つのまとまったデータとして取り扱いたい場合は[foo, bar, baz, hoge, fuga]のような空の値を除外した1次元配列のほうが都合が良い。
1次元配列にまとめたい場合はgetValues()で取得したあとにflat().filter(String).map(String)を続けて処理すれば取得できる。
function myFunction() {
const ss = SpreadsheetApp.getActiveSpreadsheet();
const sheet = ss.getSheets()[0];
const result = sheet.getRange('A1:B5').getValues().flat().filter(String).map(String);
Logger.log(result);
// [foo, bar, baz, hoge, fuga]
}


