У меня есть следующий скрипт, успешно создающий PDF-файл и отправляющий электронное письмо, однако, как представляется, в файле есть некоторые ошибки, потому что он выглядит пустым. Когда я отлаживаю эту функцию, она чистая, поэтому я не знаю, как найти конкретные проблемы, из-за которых PDF-файл пуст. Я очень новичок в написании сценариев Google, поэтому любая помощь будет оценена по достоинству. Я хотел бы предоставить скриншот ошибки я получаю при открытии PDF, но у меня не хватает респ :(PDF Экспорт листинга Google заканчивается пустым
function emailPDF() {
SpreadsheetApp.flush();
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheets = ss.getSheets();
var url = ss.getUrl().replace(/edit$/, '');
//additional parameters for exporting the sheet as a pdf
var url_ext = 'export?exportFormat=pdf&format=pdf' + //export as pdf
'&size=letter' + //paper size
'&portrait=true' + //orientation, false for landscape
'&fitw=true' + //fit to width, false for actual size
'&sheetnames=false&printtitle=false&pagenumbers=false' + //hide optional
'&gridlines=false' + //false = hide gridlines
'&fzr=false' + //do not repeat row headers (frozen rows) on each page
'&gid='; //leave ID empty for now, this will be populated in the FOR loop
var token = ScriptApp.getOAuthToken();
//make an empty array to hold your fetched blobs
var blobs = [];
//.fetch is called for each sheet, the response is stored in var blobs[]
for (var i = 0; i < sheets.length; i++) {
var sheetname = sheets[i].getName();
//if the sheet is one that you don't want to process,
//continue' tells the for loop to skip this iteration of the loop
if (sheetname == "Dropdown Data")
continue;
if (sheetname == "Data Log")
continue;
var options = {
headers: {
'Authorization': 'Bearer ' + ScriptApp.getOAuthToken()
}
}
options.muteHttpExceptions = true;
//grab the blob for the sheet
var response = UrlFetchApp.fetch(url + url_ext + sheets[i].getSheetId(), options);
//convert the response to a blob and store in our array
blobs.push(response.getBlob().setName(sheets[i].getName() + '.pdf'));
var array_blob = response.getBlob().setName(sheets[i].getName() + '.pdf');
}
//Email Evaulation Details
var chtm_name = ss.getRange('D5').getValue();
var evaluated_by = ss.getRange('D6').getValue();
var email_to = ss.getRange('E5').getValue();
// send email
var subject = "Customer Happiness Audit Form"
var message = "Hello " + chtm_name + " - Attached is your audit, completed by " + evaluated_by
MailApp.sendEmail(email_to, subject, message, {
attachments: [array_blob]
});
}
планирующих вы на экспорт всей электронной таблицы, как есть? – Rivero
Мне нужен только активный лист. Но ваш скрипт работает намного лучше, чем мой. Последний шаг - экспортировать активный лист, а не всю таблицу. –