3. 「オブジェクト配列化」して扱いやすくするパターン
ヘッダー行(1行目)をキーにして、「テーブル」をレコード(オブジェクト)配列に変換しておくと
CSV部品や Drive ファイル一覧部品とも同じノリで扱えます。
/** * アクティブシートの内容を * ヘッダー行(1行目)をキーにしたオブジェクト配列に変換するテンプレ */ function readSheetAsRecords() { const sheet = SpreadsheetApp.getActiveSheet(); const lastRow = sheet.getLastRow(); const lastCol = sheet.getLastColumn(); if (lastRow < 2) { return []; // データ行なし } const header = sheet.getRange(1, 1, 1, lastCol).getValues()[0]; // 1次元配列 const data = sheet.getRange(2, 1, lastRow - 1, lastCol).getValues(); // 2次元配列 const records = data.map(row => { const obj = {}; header.forEach((h, i) => { obj[h] = row[i]; // 見出しをキーにする }); return obj; }); return records; }
【使用例】
function sampleUseRecords() { const records = readSheetAsRecords(); // 例:ステータス列が「完了」の行だけログ const filtered = records.filter(r => r['ステータス'] === '完了'); filtered.forEach(r => { Logger.log(`${r['ID']} : ${r['顧客名']} / ${r['金額']}`); }); }
👉 こうしておくと、
「CSVから読んだデータ」「シートから読んだデータ」「Driveのファイル情報」
ぜんぶ「レコード配列」として同じパターンで扱えるので、汎用部品を作りやすくなります。