Список идентификаторов листов в столбце с использованием Google Scripts - PullRequest
1 голос
/ 26 июня 2019

Я пытаюсь получить идентификаторы листов для перечисления в столбце на мастер-листе.

У меня 15 листов, и я хочу получить идентификаторы каждого из них для отображения на Мастер в столбце A1: A15.Отсюда я понял, как получить его во всплывающем окне, но не могу за всю жизнь заставить его заселить клетки.Когда я пытаюсь это сделать, он заполняет только все ячейки в серии вместо всех.

function getSheetId()
{
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getActiveSheet();
  var allSheets=ss.getSheets();
  var ids=[];
  for(var i=0;i<allSheets.length;i++)
  {
    ids[allSheets[i].getName()]=allSheets[i].getSheetId();


  }
  var s='<table width="100%">';
  for(key in ids)
  {
    s+=Utilities.formatString('<tr><td><strong>Sheet Name</strong></td><td>%s</td><td><strong>Sheet Id</strong></td><td>%s</td></tr>',key,ids[key]);
    SpreadsheetApp.getActiveSheet().getRange('D47').setValue(Utilities.formatString('%s %s',key,ids[key]));

    Logger.log(Utilities.formatString('%s %s',key,ids[key]));


  }
  s+='</table>'

  var userInterface=HtmlService.createHtmlOutput(s).setWidth(800).setHeight(450);
  SpreadsheetApp.getUi().showModelessDialog(userInterface, 'Sheet Keys for Spreadsheet: ' + ss.getName())


}

1 Ответ

1 голос
/ 26 июня 2019

Попробуйте это:

Это поместит их в столбец 1:

function getSheetId()
{
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getActiveSheet();
  var allSheets=ss.getSheets();
  var ids=[];
  for(var i=0;i<allSheets.length;i++) {
    ids.push([allSheets[i].getSheetId()]);
  }
 sh.getRange(1,1,ids.length,1).setValues(ids);
}

Это добавляет диалог к ​​функции:

function getSheetId1()
{
  var ss=SpreadsheetApp.getActive();
  var sh=ss.getActiveSheet();
  var allSheets=ss.getSheets();
  var ids=[];
  var html="<style>td,th{border: 1px solid black;}</style><table><tr><th>Sheet Name</th><th>ID</th></tr>";
  for(var i=0;i<allSheets.length;i++) {
    ids.push([allSheets[i].getSheetId()]);
    html+=Utilities.formatString('<tr><td>%s</td><td>%s</td></tr>',allSheets[i].getName(),allSheets[i].getSheetId());
  }
  sh.getRange(1,1,ids.length,1).setValues(ids);
  html+='</table>';
  var userInterface=HtmlService.createHtmlOutput(html);
  SpreadsheetApp.getUi().showModelessDialog(userInterface,'Title');
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...