Encontré este código para enviar por correo electrónico todas las pestañas de una hoja de cálculo de Google como un archivo PDF (un archivo combinado).
function sendReport() { var message = { to: "contact@sexample.com", subject: "Sales Reports", body: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s", name: "Sales", attachments:[SpreadsheetApp.getActiveSpreadsheet().getAs(MimeType.PDF).setName("sales_report_2021")] } MailApp.sendEmail(message);Por lo tanto, me gustaría fusionar en el documento final solo las pestañas en las que la celda "A1" es igual a "1" y enviarlas por correo electrónico como archivo adjunto.
¡Muchos gracias!
Creo que su objetivo es el siguiente.
1 .En este caso, ¿qué tal la siguiente modificación?
function sendReport() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var ranges = ss.createTextFinder("1").matchEntireCell(true).findAll(); var showSheets = ranges.reduce((ar, e) => { if (e.getA1Notation() == "A1") ar.push(e.getSheet().getSheetName()); return ar; }, []); var sheets = ss.getSheets(); sheets.forEach(s => { if (!showSheets.includes(s.getSheetName())) s.hideSheet(); }); SpreadsheetApp.flush(); var pdf = ss.getBlob().setName("sales_report_2021"); var message = { to: "contact@sexample.com", subject: "Sales Reports", body: "Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s", name: "Sales", attachments: [pdf] } MailApp.sendEmail(message); sheets.forEach(s => s.showSheet()); }1 se recuperan de todas las hojas usando TextFinder. Y, se recuperan las hojas que la celda "A1" tiene 1 . Y, las hojas que la celda "A1" no tiene valor de 1 están ocultas. Y luego, la hoja de cálculo se convierte en datos PDF y se usa con MailApp.sendEmail . Por fin, se muestran todas las hojas. Por este flujo, se logra su objetivo.