Google Script для экспорта листа в PDF: различное поведение, когда лист скрыт / видим - PullRequest
0 голосов
/ 07 ноября 2018

У меня есть электронная таблица Google с листом с именем «template» и прикрепленным Google Script, который превращает лист «template» в блоб PDF со следующей функцией:

function getPdfBlob() {
  var ss = SpreadsheetApp.getActive();
  var ssId = ss.getId();
  var sheet = ss.getSheetByName("template");
  var sheetId = sheet.getSheetId();
  var url = "https://docs.google.com/spreadsheets/d/SS_ID/export?".replace("SS_ID", ssId);
  var url_ext = "exportFormat=pdf&format=pdf" +  // export as pdf / csv / xls / xlsx
      "&size=letter" +                           // paper size legal / letter / A4
      "&portrait=true" +                         // orientation, false for landscape
      "&fitw=true&source=labnol" +               // fit to page width, false for actual size
      "&sheetnames=false&printtitle=false" +     // hide optional headers and footers
      "&pagenumbers=true&gridlines=false" +      // hide page numbers and gridlines
      "&fzr=false" +                             // repeat row headers (frozen rows) on each page
      "&gid=";                                   // the sheet's Id
  var token = ScriptApp.getOAuthToken();
  var response = UrlFetchApp.fetch(url + url_ext + sheetId, {
    headers: { Authorization: "Bearer " + token }
  });
  return response.getBlob().setName('test.pdf');
}

Когда лист отображается нормально, функция работает без ошибок. Когда я прячу лист, я внезапно получаю ошибку:

Request failed for https://docs.google.com/spreadsheets/[...] returned code 500. Truncated server response: <!DOCTYPE html><html lang="en"><head><meta name="description" content="Web word processing, presentations and spreadsheets"><meta name="viewport" c... (use muteHttpExceptions option to examine full response) (line 16, file "Code")

Не похоже, что скрытие листа изменяет его sheetID. Я предполагаю, что это связано с тем, что я не могу перейти непосредственно к определенному листу через URL, когда он скрыт - Google перенаправляет меня на видимый лист. Есть идеи для работы?

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