Googleを追いかけろ!

.
* 範囲の最上段左端のインデックスを取得する・・getIndex1() , getIndex2()
* 範囲のデータすべてを取得する・・getAllData()
* アクティブ範囲の最上段左端のデータを取得する・・getValue()
* 範囲内のカラム数を取得する・・getNumColumns()
* ヘッダーとなる各項目を取得する・・headersRange()
* 一行分の各項目を取得する・・RowData()
* オブジェクトのプロパティを利用する・・simpleForm()

WWW を検索 Googleを追いかけろ! を検索




* オブジェクトのプロパティを利用する・・simpleForm() :

ヘッダーの正規化プログラムを省略しています。 プログラムの流れが分かるようにできる限り削り落としました。

ここで利用する主なメソッド;getRange(),getNumColumns(),getValues()

function simpleForm(){

sheet = SpreadsheetApp.getActiveSheet().getRange(1, 1, 4, 4 );
data = SpreadsheetApp.getActiveSheet().getRange(2, 1, 3, 4 ).getValues();

  var ri = sheet.getRowIndex();
var ci = sheet.getColumnIndex();
var numColumns = sheet.getNumColumns();
var headersRange = SpreadsheetApp.getActiveSheet().getRange(ri,ci,1,numColumns);
var headers = headersRange.getValues()[0];

var keys = [];
  for (var i = 0; i < headers.length; ++i) {
    var key ="";
    var key = headers[i]; 
    if (key.length > 0) {
      keys.push(key);
      }
  }

var objects = [];
  for (var i = 0; i < data.length; ++i) {
    var object = {};
    var hasData = false;
    for (var j = 0; j < data[i].length; ++j) {
      var cellData = data[i][j];
      if (isCellEmpty(cellData)) {
        continue;
      }
      object[keys[j]] = cellData;
      hasData = true;
    }
    if (hasData) {
      objects.push(object);
    }
  }
 
  function isCellEmpty(cellData) {
  return typeof(cellData) == "string" && cellData == "";
}
    
var firstdog = objects[0];
var seconddog = objects[1];
var thirddog = objects[2];

 Browser.msgBox("2番目の犬の名前;" + seconddog.name);  
 Browser.msgBox("1番目の犬の誕生日;" + firstdog.birthday);
 Browser.msgBox("2番目の犬の犬種;"+ seconddog.breed);
 Browser.msgBox("3番目の犬の名前 ; "+" "+ thirddog.name +"雌雄; " +  thirddog.sex); 
}