セル操作したい(Range
)
1const range = sheet.getDataRange();
2const range = sheet.getRange("A1:C3");
Range
オブジェクトは、シート上の選択した範囲を操作できます。
データを選択したい(getRange
)
1// A1表記で指定
2// sheet.getRange("セル番地");
3// sheet.getRange("セル番地:セル番地");
4
5// A1セルを選択
6const range = sheet.getRange("A1");
7
8// A1セルからB3までの範囲を選択
9const range sheet.getRange("A1:B3");
getRange
でセル(やセル範囲)を指定して選択できます。
セル番地は大文字でも小文字でもOKです。
1// 行番号/列番号で指定
2// sheet.getRange("行番号", "列番号");
3// sheet.getRange("行番号", "列番号", "行数");
4// sheet.getRange("行番号", "列番号", "行数", "列数");
5
6// 2行目3列目(=C2セル)を選択
7const range = sheet.getRange(2, 3);
8
9// 2行目3列目(=C2)から2行目2列目(=D3)の範囲を取得
10const range = sheet.getRange(2, 3, 2, 2);
getRange
はR1C1表記にも対応しています。
データを列選択したい
1// B列を全選択
2const range = sheet.getRange("B1:B");
3
4// 2行目を全選択
5const range = sheet.getRange("A2:2");
6
7// これはエラー
8const range = sheet.getRange("B");
9// -> Exception: Range not found
列全体はgetRange(開始セル:列番号)
、
行全体はgetRange(開始セル:行番号)
で選択できます。
getRange(列番号 or 行番号)
だけだとエラーになります。
データを全選択したい(getDataRange
)
1// すべてのデータの範囲
2const range = sheet.getDataRange()
getDataRange
で、シートにあるデータを全選択できます。
余計な空行・空列は含まれないので、シート全体でデータを管理している場合によく使います。
1// 見出しを除外したデータの範囲
2const range = sheet.getDataRange.slice(1);
シートの1行目は、見出しに設定している場合があります。
見出しを含みたくない場合は.slice(1)
するとよいです。
1// 別の選択方法
2const nrows = sheet.getLastRow();
3const ncols = sheet.getLastColumns();
4const range = sheet.getRange(2, 1, nrows, ncols);
シートにあるデータの行数、列数を取得して、getRange
して範囲選択することもできます。
1const lastRow = sheet.getLastRow();
2const newRange = sheet.getRange(lastRow+1, 1);
データを読み込むときより、既存のデータを追記したいときに利用します。
セル選択したい(getRange
)
1// 選択範囲を確認
2range.activate();
activate
メソッドで、実際に選択された範囲をシート上で確認できます。
デバッグ時など、選択範囲が正しいか確認するときに便利です。
値を読み込みたい(getValues
)
1const values = range.getValues();
getValues
メソッドで、選択した範囲の値を2次元配列として取得できます。
値を書き込みたい(setValues
)
1const arrays = [[二次元配列]];
2const rows = dataTable.length; // 行の数
3const cols = dataTable[0].length; // 見出しの数=列の数
4sheet.getRange(1, 1, rows, cols).setValues(arrays);
setValues
メソッドで、選択した範囲に2次元配列の値を書き込めます。
書き込みたい2次元配列のシェイプ(=行数と列数)と、選択範囲のサイズは揃っている必要があるため、rows
とcols
を2次元配列から取得しています。
組み込み関数したい(setFormula
)
1const cell = sheet.getRange("セル名");
2cell.setFormula("=SUM(セル名:セル名)");
setFormula
でスプレッドシートの組み込み関数を利用できます。
セルの書式を変更したい
1const range = sheet.getRange(範囲); // 開始行, 開始列, 行数, 列数
2range.setFontSize(整数);
3range.setFontFamily("フォント名");
4range.setFontWeight("ウェイト名"); // "normal", "bold"
5range.setFontStyle("スタイル名"); // "normal", "italic"
6range.setFontLine("ライン名"); // "none", "underline", "line-through"
7range.setFontColors("色");
8range.setBackgrounds("色");
選択したセルに対して、フォントやスタイル、文字色などを設定できます。