Получить личный лист Google по ID?

Я знаю, что Google Apps Script имеет метод getSheetId() для класса Sheet, но есть ли способ выбрать лист в электронной таблице путем ссылки на идентификатор?

Я не вижу ничего подобного getSheetById() в Документация по таблицам таблиц.

Ответ 1

Вы можете использовать что-то вроде этого:

function getSheetIdtest(){
  var id  = SpreadsheetApp.getActiveSheet().getSheetId();// get the actual id
  Logger.log(id);// log
  var sheets = SpreadsheetApp.getActive().getSheets();
  for(var n in sheets){ // iterate all sheets and compare ids
    if(sheets[n].getSheetId()==id){break}
  } 
  Logger.log('tab index = '+n);// your result, test below just to confirm the value
  var currentSheetName = SpreadsheetApp.getActive().getSheets()[n].getName();
  Logger.log('current Sheet Name = '+currentSheetName);
}

Ответ 2

var sheetActive = SpreadsheetApp.openById("ID");
var sheet = sheetActive.getSheetByName("Name");

Ответ 4

Не уверен в ID, но вы можете установить его имя:

var ss = SpreadsheetApp.getActiveSpreadsheet();
ss.setActiveSheet(ss.getSheetByName("your_sheet_name"));

Класс SpreadsheetApp имеет метод setActiveSheet и метод getSheetByName.