データが入っている範囲を取得してそのデータを取得するコードです
以下2つの方法を試しました
- .getDataRange()で取得する
- getRange(row, column, numRows, numColumns)で取得する
.getDataRange()で取得する
データが入っている範囲のすべてを取得する場合はこれで
コード1.gsfunction get_values() { var sheet = SpreadsheetApp.getActiveSheet(); var range = sheet.getDataRange(); var values = range.getValues(); Logger.log(values); } | 意訳この機能がやること 対象のシートを取得して データが入っている範囲を取得して 値を取得して ログに出す |
選択される範囲のイメージ
コード1.gsを実行したログ
getRange(row, column, numRows, numColumns)で取得する
データが入っている範囲のすべてではなく
範囲の先頭行と先頭列を指定して取得したい場合は
以下のコード.gsの
var start_row = 1;
var start_col = 1;
の値を2とか3にするとその範囲を取得できます
コード2.gs
function get_values() { var sheet = SpreadsheetApp.getActiveSheet(); var last_row = sheet.getLastRow(); var last_col = sheet.getLastColumn(); var start_row = 2; var start_col = 1; var numRows = last_row - start_row + 1; var numColumns = last_col - start_col + 1; var range = sheet.getRange(start_row, start_col, numRows, numColumns); var values = range.getValues(); Logger.log([last_row, last_col, values]); } |
意訳この機能がやること 対象のシートを取得して データの入っている最終行を取得して データの入っている最終列を取得して 対象範囲の先頭の行を指定して 対象範囲の先頭の列を指定して 対象の行数を取得して(最終行 - 先頭行だと先頭行の分が含まれないので+1する) 対象の列数を取得して(最終列 - 先頭列だと先頭列の分が含まれないので+1する) 範囲を指定して 値を取得して ログに出す |
選択される範囲のイメージ
コード2.gsを実行したログ
参考
getDataRange()
https://developers.google.com/apps-script/reference/spreadsheet/sheet#getDataRange()
getRange(row, column, numRows, numColumns)
https://developers.google.com/apps-script/reference/spreadsheet/sheet#getRange(Integer,Integer,Integer,Integer)