LANG SELRCT

コードを書く場所

2019年11月16日土曜日

スプレッドシートからシートのidとnameをオブジェクトにして取得したい


スプレッドシートに2つのシート(シート1, シート2)があって


こういうオブジェクトでidとnameを取得したい
{
  sheets=[
    {
      name=シート1,
      id=0
    },
    {
      name=シート2,
      id=1108729736
    }
  ],
  name=無題のスプレッドシート,
  id=1MbkVY162q27yF0h4aNnxxxxxxxxxxxxxx
}




コード.gs
function getSSObject(){
  var ssUrl = "https://docs.google.com/spreadsheets/d/SPREADSHEET_ID/edit#gid=0";// 対象のスプレッドシートのURL
  var ss = SpreadsheetApp.openByUrl(ssUrl);
  
  var ssObj = {};
  ssObj["id"] = ss.getId();
  ssObj["name"] = ss.getName();
  ssObj["sheets"] = getSheetsObjArray(ss);
  Logger.log(ssObj);
}

function getSheetsObjArray(ss) {
  var sheets = ss.getSheets();
  var sheetsObjArray = [];
  for(var i = 0; i < sheets.length; i++) {
    var obj = {}
    var sheet = sheets[i];
    obj["name"] = sheet.getSheetName();
    obj["id"] = sheet.getSheetId();
    sheetsObjArray.push(obj);
  }
  return sheetsObjArray;
}



参考

openByUrl(url)
https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet-app#openByUrl(String)

Class Spreadsheet
https://developers.google.com/apps-script/reference/spreadsheet/spreadsheet.html