LANG SELRCT

コードを書く場所についてはこちら

2018年7月13日金曜日

ヘッダの文字列を用意してシートの一行目に自動で入力したい


入力したい文字列をこのように配列で用意して
var array = [
  "TITLE",
  "DETAIL",
  "NAME",
  "DATE"
];


シートの一行目に一気に入れる

ということをやりたくて書いたコードです


Container-bound Scriptsでスプレッドシート内に書きたい場合


コード.gs
/************************************
ヘッダにしたい文字列
************************************/
var array = [
  "TITLE",
  "DETAIL",
  "NAME",
  "DATE"
];

/************************************
1行目に自動入力する
************************************/
function set_header(){
  var sh = SpreadsheetApp.getActiveSheet();
  var start_row = 1;
  var start_col = 1;
  var num_rows = 1;
  var num_cols = array.length;
  var range = sh.getRange(start_row, start_col, num_rows, num_cols);
  range.setValues([array]); 
}



Standalone Scriptsで書きたい場合


コード.gs
/************************************
オブジェクトに中身をシートに書き出す順番を指定
************************************/
var array = [
  "TITLE",
  "DETAIL",
  "NAME",
  "DATE"
];

/************************************
ヘッダーをD列以降に自動入力する
ss_url:入力したいスプレッドシートのURL
sh_id:その中のシートID
************************************/
function set_header(){
  var ss_url = "対象のスプレッドシートのURL";
  var ss = SpreadsheetApp.openByUrl(ss_url);
  var sh_id = 0;
  var sh = get_sheet(ss, sh_id);
  var start_row = 1;
  var start_col = 1;
  var num_rows = 1;
  var num_cols = array.length;
  var range = sh.getRange(start_row, start_col, num_rows, num_cols);
  range.setValues([array]); 
}

/************************************
シートIDを受け取ってシートを見つけて返す
************************************/
function get_sheet(ss, sh_id) {
  var shs = ss.getSheets();
  for (var i = 0; i < shs.length; i++) {
    if (shs[i].getSheetId() == sh_id) {
      break;
    }
  }
  var sh = ss.getSheets()[i];
  return sh;
}



参考

Standalone Scripts
https://developers.google.com/apps-script/guides/standalone

Container-bound Scripts
https://developers.google.com/apps-script/guides/bound