Сценарий пытается отправить электронное письмо, к которому прикреплен zip-файл листов, преобразованный в файлы PDF. В zip-файл должны быть включены только листы с содержанием.
function zipit() {
SpreadsheetApp.flush();
var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/[Google Key]/edit#");
// Base URL
var url = "https://docs.google.com/spreadsheets/d/SS_ID/export?".replace("SS_ID", ss.getId());
var print1 = ss.getSheetByName("Print1");
var print2A = ss.getSheetByName("Print2A");
var print2B = ss.getSheetByName("Print2B");
var print2C = ss.getSheetByName("Print2C");
var print3A = ss.getSheetByName("Print3A");
//get email address to send to
var organiserEmail = calcSheet.getRange("E31").getValue();
//get date range for next month
var tablesSheet = ss.getSheetByName("Next Month");
var period = print1.getRange("V2:W2").getValue(); // period for the league taken from League 1
var subject = "Singles League print outputs for : " + period;
var body = "Attached are the PDF files to allow you to print the tables";
var url_ext = 'exportFormat=pdf&format=pdf' // export as pdf / csv / xls / xlsx
+ '&size=A4' // paper size legal / letter / A4
+ '&portrait=false' // orientation, false for landscape
+ '&fitw=true' // fit to page width, false for actual size
+ '&sheetnames=false&printtitle=false' // hide optional headers and footers
//+ '&printRange'
+ '&pagenumbers=false' // hide page numbers
+ '&gridlines=true' // hide gridlines
+ '&fzr=false' // do not repeat row headers (frozen rows) on each page
+ '&gid='; // the sheet's Id
// Use token to access the sheet
var options = {
headers: {
'Authorization': 'Bearer ' + ScriptApp.getOAuthToken(),
'muteHttpExceptions': true,
}
};
// make empty array to hold fetched blobs
var blobs = [];
var i=0; // Set start number of 'blobs[]'
// **league 1**
var SheetId = '56'; // id of League 1 print sheet - 'print1'
var filename = '1' + '.pdf';
// create PDF
// Convert individual worksheets to PDF
try { var response = UrlFetchApp.fetch(url + url_ext + SheetId, options); }
catch(err) { Browser.msgBox("Error"); }
// Convert the response to a blob and store in array
blobs[i] = response.getBlob().setName(filename);
i=i+1; // Set number of 'blob'
// **League 2A**
// Check if sheet has content
if (print2A.getRange("A11").getValue() != null) {
SheetId = '58'; // id of League 1 print sheet - 'print2A'
// create PDF
// Convert individual worksheets to PDF
try { var response = UrlFetchApp.fetch(url + url_ext + SheetId, options); }
catch(err) { Browser.msgBox("Error"); }
// Convert the response to a blob and store in array
blobs[i] = response.getBlob().setName('2A' + '.pdf');
i=i+1; // Set number of 'blob'
}
// **League 2B**
// Check if sheet has content
if (print2B.getRange("A11").getValue() != null) {
SheetId = '59'; // id of League 2B print sheet - 'print2B'
// create PDF
// Convert individual worksheets to PDF
try { var response = UrlFetchApp.fetch(url + url_ext + SheetId, options); }
catch(err) { Browser.msgBox("Error"); }
// Convert the response to a blob and store in array
blobs[i] = response.getBlob().setName('2B' + '.pdf');
i=i+1; // Set number of 'blob'
}
// **League 2C**
//Check if sheet has content
if (print2C.getRange("A11").getValue() != null) {
SheetId = '62'; // id of League 2C print sheet - 'print2C'
// create PDF
// Convert individual worksheets to PDF
try { var response = UrlFetchApp.fetch(url + url_ext + SheetId, options); }
catch(err) { Browser.msgBox("Error"); }
// Convert the response to a blob and store in array
blobs[i] = response.getBlob().setName('2C' + '.pdf');
var i=i+1; // Set number of 'blob'
}
// **League 3A**
// Check if sheet has content
if (print3A.getRange("A11").getValue() != null) {
SheetId = '60'; // id of League 3A print sheet - 'print3A'
// create PDF
// Convert individual worksheets to PDF
try { var response = UrlFetchApp.fetch(url + url_ext + SheetId, options); }
catch(err) { Browser.msgBox("Error"); }
// Convert the response to a blob and store in array
blobs[i] = response.getBlob().setName('3A' + '.pdf');
i=i+1; // Set number of 'blob'
}
/************************************************/
// New Participants
SheetId = '38'; // id of New Participants print sheet - 'New Participants Alpha'
// create PDF
// Convert individual worksheets to PDF
try { var response = UrlFetchApp.fetch(url + url_ext + SheetId, options); }
catch(err) { Browser.msgBox("Error"); }
// Convert the response to a blob and store in array
blobs[i] = response.getBlob().setName('Participants' + '.pdf');
/************************************************/
// Send email
// create a new blob that is a zip file containing our blob array
var zipBlob = Utilities.zip(blobs).setName('Singles League :' + period + '.zip');
// If allowed to send emails, send the email with the PDF attachment
if (MailApp.getRemainingDailyQuota() > 0)
GmailApp.sendEmail(organiserEmail, subject, body, {
htmlBody: body,
attachments:[zipBlob]
});
}
Идея состояла в том, чтобы напечатать первый лист (Лига 1), а затем перейти к Лиге 2А, где проверяется ячейка А11 (1,11), чтобы увидеть, есть ли контент ... если в этой ячейке есть контент, то преобразовать страницу в PDF и создать «блоб» ... если в A11 нет содержимого, затем перейти к League 2B, проверить содержимое ячейки A11, если нет, затем перейти к League 2C, если есть содержимое, затем преобразовать страницу в PDF и создайте «блоб» ... и так далее до последней страницы под названием Участники.
Последняя задача - создать zip-файл и отправить электронное письмо с приложенным zip-файлом.
Проблема в том, что проверка ячейки «А11» не работает. Все листы (1.pdf, 2A.pdf, 2B.pdf, 2C.pdf, 3A.pdf и Players.pdf) находятся в zip-файле, независимо от того, имеют ли они содержимое. Электронная часть рутины работает как надо. Лист участников не печатается, вместо этого есть дубликат 3А ...
Кто-нибудь может посоветовать, что происходит и предложить исправления?
Спасибо в ожидании.
Запись под рабочим кодом для достижения цели .... только последняя часть включена ниже: -
// Get token to access the sheet
var token = ScriptApp.getOAuthToken();
var options = {
headers:{
'Authorization': 'Bearer ' + token,
'muteHttpExceptions': true,
}
};
var SheetId = '56'; // id of League 1 print sheet - 'print1'
var filename = '1' + '.pdf';
// create PDF
// Convert individual worksheets to PDF
try {
var response = UrlFetchApp.fetch(url + url_ext + SheetId, options);
}
catch(err)
{
Browser.msgBox("Error");
}
// Convert the response to a blob and store in array
blobs.push(response.getBlob().setName(filename));
// League 2A
// Check if sheet has content
if ((print2A.getRange("A11").getValue())!= ""){
SheetId = '58'; // id of League 1 print sheet - 'print2A'
filename = '2A' + '.pdf';
// create PDF
// Convert individual worksheets to PDF
try {
var response = UrlFetchApp.fetch(url + url_ext + SheetId, options);
}
catch(err)
{
Browser.msgBox("Error");
}
// Convert the response to a blob and store in array
blobs.push(response.getBlob().setName(filename));
}
// League 2B
// Check if sheet has content
if ((print2B.getRange("A11").getValue())!= ""){
SheetId = '59'; // id of League 2B print sheet - 'print2B'
filename = '2B' + '.pdf';
// create PDF
// Convert individual worksheets to PDF
try {
var response = UrlFetchApp.fetch(url + url_ext + SheetId, options);
}
catch(err)
{
Browser.msgBox("Error");
}
// Convert the response to a blob and store in array
blobs.push(response.getBlob().setName(filename));
}
// League 2C
//Check if sheet has content
if ((print2C.getRange("A11").getValue())!= ""){
SheetId = '62'; // id of League 2C print sheet - 'print2C'
filename = '2C' + '.pdf';
// create PDF
// Convert individual worksheets to PDF
try {
var response = UrlFetchApp.fetch(url + url_ext + SheetId, options);
}
catch(err)
{
Browser.msgBox("Error");
}
// Convert the response to a blob and store in array
blobs.push(response.getBlob().setName(filename));
}
// League 3A
// Check if sheet has content
if ((print3A.getRange("A11").getValue())!= ""){
SheetId = '60'; // id of League 3A print sheet - 'print3A'
filename = '3A' + '.pdf';
// create PDF
// Convert individual worksheets to PDF
try {
var response = UrlFetchApp.fetch(url + url_ext + SheetId, options);
}
catch(err)
{
Browser.msgBox("Error");
}
// Convert the response to a blob and store in array
blobs.push(response.getBlob().setName(filename));
}
// League 3B
// Check if sheet has content
if ((print3A.getRange("A11").getValue())!= ""){
SheetId = '61'; // id of League 3B print sheet - 'print3B'
filename = '3B' + '.pdf';
// create PDF
// Convert individual worksheets to PDF
try {
var response = UrlFetchApp.fetch(url + url_ext + SheetId, options);
}
catch(err)
{
Browser.msgBox("Error");
}
// Convert the response to a blob and store in array
blobs.push(response.getBlob().setName(filename));
}
/************************************************/
// New Participants
SheetId = '38'; // id of New Participants print sheet - 'New Participants Alpha'
filename = 'Participants' + '.pdf';
// create PDF
// Convert individual worksheets to PDF
try {
var response = UrlFetchApp.fetch(url + url_ext + SheetId, options);
}
catch(err)
{
Browser.msgBox("Error");
}
// Convert the response to a blob and store in array
blobs.push(response.getBlob().setName(filename));
/************************************************/
// Send email
// create a new blob that is a zip file containing our blob array
var zipBlob = Utilities.zip(blobs).setName('Singles League :' + period + '.zip');
// If allowed to send emails, send the email with the PDF attachment
if (MailApp.getRemainingDailyQuota() > 0) {
GmailApp.sendEmail(organiserEmail, subject, body, {
htmlBody: body,
attachments:[zipBlob]
});
};
}