Причина проблемы:
Причиной возникновения проблемы являются следующие 2 строки.
var sheetId = sheetNumber ? spreadsheet.getSheets()[sheetNumber].getSheetId() : null;
+ (sheetId ? ('&gid=' + sheetId) : ('&id=' + spreadsheetId))
При наличии двух строк выше возникают следующие проблемы.
- Когда
sheetNumber
равен 0
, sheetId
становится null
. - Когда
sheetId
имеет значение 0
и null
, используется '&id=' + spreadsheetId
. - Когда имеется лист с
gid=0
в индексе 1 (2-я страница), когда активным листом является индекс 0
(1-я страница) или индекс 1
(2-я страница), используется '&id=' + spreadsheetId
.
В троичном операторе и if
, 0
и null
оценивается как false
,При указанных выше проблемах файл PDF со всеми листами возвращается, когда активным листом является 1-я и 2-я страницы.
Точки изменения:
Я думаю, что ss.getActiveSheet().getIndex()
всегда имеет номер индекса.
Так как насчет этих модификаций?
От:
var sheetId = sheetNumber ? spreadsheet.getSheets()[sheetNumber].getSheetId() : null;
и
+ (sheetId ? ('&gid=' + sheetId) : ('&id=' + spreadsheetId))
До:
var sheetId = spreadsheet.getSheets()[sheetNumber].getSheetId();
и
+ sheetId
Примечание:
Если вы хотите проверить переменную, как насчет изменения следующим образом?
To:
var sheetId = !isNaN(sheetNumber) && sheetNumber >= 0 && sheetNumber < spreadsheet.getSheets().length ? spreadsheet.getSheets()[sheetNumber].getSheetId() : null;
и
+ (sheetId != null ? ('&gid=' + sheetId) : ('&id=' + spreadsheetId))
Если это не то, что вы хотите, извините.