【发布时间】:2020-01-29 02:02:12
【问题描述】:
我正在使用 GSheet 开发成绩簿程序,但遇到了新问题。我需要隐藏除“学生报告”表之外的所有工作表,然后将其 pdf 并通过电子邮件发送。它工作得很好,直到我收到报告说脚本没有完全隐藏工作表,然后继续制作 pdf。我添加了“睡眠”,但希望采取更主动的方法。
我想出了这个主意,但它只是超时了。我希望有一个 do-while 循环来不断检查工作表的隐藏属性……一旦除了一个之外的所有属性都被隐藏(即学生报告)……它应该继续。任何帮助将不胜感激。
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 一张纸……那会很好地解决问题。
【问题讨论】:
标签: google-apps-script google-sheets