LoginSignup
0
3

More than 5 years have passed since last update.

【GoogleAppsScript】URLで指定したスプレッドシート情報を二次元配列で取得する

Last updated at Posted at 2019-02-16

作成目的

  • 特定のスプレッドシート情報を二次元配列で取得する必要が出たため作成

手順/方法

  1. 指定のスプレッドシートオブジェクトを取得する
    • URL指定で取得 → SpreadsheetApp.openByUrl('指定のURL') を使用する
    • URL未指定で取得 → SpreadsheetApp.getActiveSpreadsheet() を使用する
  2. 二次元配列を準備する
  3. 以下の情報を取得し、配列の pushメソッド で二次元配列へ順々に入れていく
    • 現在日時
    • スプレッドシート ファイル名
    • ログインユーザーメールアドレス
    • スプレッドシート URL
    • スプレッドシート 全シート名
  4. 最終的に、return で取得したスプレッドシート情報を二次元配列でかえす

具体例

  • 他の関数内で getSpreadsheetInfo('https://docs.google.com/spreadsheets/d/?????/xxxxx'); とすれば、使い回すことができます
get_spreadsheet_info.gs
/*
* スプレッドシートの情報を取得する
*
* @param  {string} 情報取得するスプレッドシートURL
* @return {array}  二次元配列
*
* TODO: 今後、他の情報取得も随時追加する
*/

function getSpreadsheetInfo(target_spreadsheet_url) {

  // パラメータ未指定の場合、本スクリプトを実装したスプレッドシートを対象とする
  if(!target_spreadsheet_url){
    var target_spreadsheet_object = SpreadsheetApp.getActiveSpreadsheet();
  } else {
    var target_spreadsheet_object = SpreadsheetApp.openByUrl(target_spreadsheet_url);
  }

  // 二次元配列を準備する(初期化)
  var spreadsheet_info = [[]];

  // 現在日時
  var notification_date = Utilities.formatDate(new Date(), 'JST' , 'yyyy/MM/dd HH:mm:ss');
  spreadsheet_info[0].push(notification_date);

  // スプレッドシート ファイル名
  var spreadsheet_name = target_spreadsheet_object.getName();
  spreadsheet_info[0].push(spreadsheet_name);

  // ログインユーザーメールアドレス
  var objUser = Session.getActiveUser();
  var active_user_mail_address = objUser.getEmail();
  spreadsheet_info[0].push(active_user_mail_address);

  // スプレッドシートURL
  var spreadsheet_url = target_spreadsheet_object.getUrl();
  spreadsheet_info[0].push(spreadsheet_url);

  // スプレッドシート 全シート名
  var sheets_object = target_spreadsheet_object.getSheets();
  var sheets_name   = '';
  if (sheets_object.length >= 1) {
    for(var i = 0; i < sheets_object.length; i++){
      sheets_name += "|" + sheets_object[i].getName();
    }
  }
  spreadsheet_info[0].push(sheets_name);


  return spreadsheet_info;

}

0
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
3