it-swarm.com.ru

Получить Google Sheet по идентификатору?

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

Я не вижу ничего подобного getSheetById () в документации по классам электронных таблиц

16
mrfinnsmith

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

function getSheetById(id) {
  return SpreadsheetApp.getActive().getSheets().filter(
    function(s) {return s.getSheetId() === id;}
  )[0];
}

var sheet = getSheetById(123456789);

А затем, чтобы найти идентификатор листа, который будет использоваться для активного листа, запустите его и проверьте журналы или используйте отладчик.

function getActiveSheetId(){
  var id  = SpreadsheetApp.getActiveSheet().getSheetId();
  Logger.log(id.toString());
  return id;
}
15
Serge insas
var sheetActive = SpreadsheetApp.openById("ID");
var sheet = sheetActive.getSheetByName("Name");
4
Javier

Посмотрите свой URL для параметра запроса #gid

https://docs.google.com/spreadsheets/d/1Vk7kzMD3DhfUeLasDdSK6Z9ScNrryPrawAxHGFimKp8/edit#gid=910184575

В приведенном выше примере gid = 910184575, так что вы можете сделать что-то вроде этого:

function getSheetById_test(){
  var sheet = getSheetById(910184575);
  Logger.log(sheet.getName());
}

function getSheetById(gid){
  for each (var sheet in SpreadsheetApp.getActive().getSheets()) {
    if(sheet.getSheetId()==gid){
      return sheet;
    }
  }
}
1
Rodolpho Brock