Я написал функцию, которая принимает пять входных данных от пользователя для создания автоматического электронного письма, адрес электронной почты, на который будет отправлено электронное письмо, тему электронного письма, тело электронного письма, лист, который нужно преобразовать в PDF, и имя, которое будет быть присвоен только что созданному PDF. Ниже приведен код, который я написал до сих пор:
function sendEmail(emailAddress, emailSubject, emailBody, sheetName, pdfName){
MailApp.sendEmail(emailAddress, emailSubject, emailBody, {
attachments: [SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetName).getAs(MimeType.PDF).setName(pdfName)]
})
}
Однако, когда я пытаюсь отправить электронное письмо, я получаю сообщение об ошибке, в котором говорится, что код после «вложений» не является функцией, и я не уверен, почему это так. Это потому, что я не могу получить лист по его имени, а затем преобразовать его в PDF?



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Вы не можете использовать .getAs() для преобразования листа в PDF. Вам нужно использовать UrlFetch() с URL-адресом электронной таблицы как https://docs.google.com/spreadsheets/d/<SPREADSHEETID>/export
Пожалуйста, проверьте этот фрагмент:
function sendEmail(emailAddress, emailSubject, emailBody, sheetName, pdfName) {
var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
var spreadsheet_id = spreadsheet.getId();
var sheet_id = spreadsheet.getSheetByName(sheetName).getSheetId();
let response = UrlFetchApp.fetch("https://docs.google.com/spreadsheets/d/" + spreadsheet_id + "/export?format=pdf&gid = " + sheet_id, {
muteHttpExceptions: true,
headers: {
Authorization: 'Bearer ' + ScriptApp.getOAuthToken(),
},
}).getBlob();
MailApp.sendEmail(emailAddress, emailSubject, emailBody, {attachments: [response.setName(pdfName)]});
}
Есть еще несколько параметров, которые вы можете добавить в качестве параметра в URL-адрес (формат, сетка и т. д.), чтобы соответствовать вашим потребностям.
Вы можете найти соответствующую информацию здесь: https://spreadsheet.dev/comprehensive-guide-export-google-sheets-to-pdf-excel-csv-apps-script