Ответ:
Вместо того, чтобы получать свой BLOB-объект с помощью DriveApp
, вы можете получить свой BLOB-объект из URL-адреса экспорта, используя UrlFetchApp
.
Дополнительная информация:
Когда вы используете DriveApp
для создания большого двоичного файла, он не имеет функции для чтения особенностей файла. В этом случае вы не можете указать диапазон листа, который вы будете экспортировать с помощью DriveApp
.
, однако вы можете создать URL со всеми вашими параметрами экспорта и создать свой экспорт в Диск, создав BLOB-объект ответа и создав его в Drive.
Код:
function SavePDFtoDrive() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var ltrsht = ss.getSheetByName("Schichtübergabe-Protokoll");
var datasheet = ss.getSheetByName("Daten");
// build your URL:
var url = "https://docs.google.com/spreadsheets/d/" + ss.getId() + "/export?"
//define your parameters:
var params = 'exportFormat=pdf&format=pdf'
+ '&portrait=false'
+ '&fitw=true'
+ '&gid=' + ltrsht.getSheetId()
+ '&range=A1:J39';
//get token for UrlFetch:
var token = ScriptApp.getOAuthToken();
var response = UrlFetchApp.fetch(url + params, {
'headers': {
'Authorization': 'Bearer ' + token
}
});
var fileName = datasheet.getRange("I8").getValue() + ".pdf";
var theBlob = response.getBlob().setName(fileName);
var folderID = "1Hp-P1dzWaKHhhS2FTPzKib6pwJibS12t";
var folder = DriveApp.getFolderById(folderID);
folder.createFile(theBlob);
}
Надеюсь, это вам пригодится!
Ссылки:
Связанные вопросы / ответы: