GSheet - убедитесь, что все листы, кроме одного, скрыты - PullRequest
2 голосов
/ 29 января 2020

Я работаю над программой дневников в GSheet и столкнулся с новой загадкой. Мне нужно спрятать все листы, кроме листа «Отчет студента», а затем в формате PDF и отправить их по электронной почте. Это работало замечательно, пока я не получил отчет о том, что сценарий не завершил скрытие листов, а затем продолжил делать PDF-файлы. Я добавил "сон", но надеялся на более активный подход.

Я пришел к этой идее, но она просто вышла из строя. Я надеюсь, что у меня будет время, пока l oop будет проверять скрытый атрибут листов ... когда все, кроме одного, скрыто (т. Е. Отчет ученика) .... оно должно go впереди , Буду признателен за любую помощь.

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets=SpreadsheetApp.getActiveSpreadsheet().getSheets();
var sheetName = "Student Report";

for(var i=0;i<sheets.length; i++){
if(sheets[i].getName()!=sheetName){
  sheets[i].hideSheet();
  }}
 var StudentReport = ss.getSheetByName("Student Report");
 ss.setActiveSheet(StudentReport);
 do {

 for (var k=0;k<sheets.length;k++){   
      var CountVisible = sheets.length;
    if(sheets[k].isSheetHidden()){
        CountVisible = CountVisible -1;
        Logger.log(CountVisible);
       }} 

  } while (CountVisible!=0);
//added wait time to esnure all sheets are properly hidden before next step
// Utilities.sleep(400);

В качестве альтернативы, если кто-то знает, как просто PDF-файл одного листа ... это решит проблему хорошо.

Ответы [ 2 ]

2 голосов
/ 29 января 2020

Этого должно быть достаточно, чтобы скрыть все, кроме одного листа.

function hideAllSheetsExceptThisOne(sheetName) {
  var sheetName=sh||'Student Report';//default for testing
  var ss = SpreadsheetApp.getActive();
  var sheets=ss.getSheets();
  for(var i=0;i<sheets.length; i++){
    if(sheets[i].getName()!=sheetName){
      sheets[i].hideSheet();
    }
  }
  SpreadsheetApp.flush();
} 
1 голос
/ 29 января 2020

Я должен был сделать нечто подобное ранее в этом году, и этот код оказался очень полезным. https://gist.github.com/ixhd/3660885

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...