Breve descrição do projeto:
https://www.youtube.com/watch?v=Hnc2SUO79_I
Segue anexa uma figura ilustrativa.
Segue o código que estou utilizando:
function afterFormSubmit(e) {
const info = e.namedValues;
const pdfFile = createPDF(info);
const entryRow =
e.range.getRow();
const ws = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Page3")
ws.getRange(entryRow, 3).setValue(
pdfFile.getUrl());
ws.getRange(entryRow, 4).setValue(pdfFile.getName());
sendEmail(e.namedValues['E-mail'][0],pdfFile);
}
function sendEmail(email,pdfFile){
GmailApp.sendEmail(email, "Here is Your PDF", "Your PDF is attached.", {
Attachments: [pdfFile],
name: 'PIAES'
});
}
function createPDF(info){
const pdfFolder = DriveApp.getFolderById("19IVmyeeUPpK3sukrZ-QJurSS0xtFiblC");
const tempFolder = DriveApp.getFolderById("1ciddGoE8Nyx1RLS09-1_FzlEJ6awLSa0");
const templateDoc = DriveApp.getFileById("1_poo4_ZW75C389OwKdrWSCYY1zBQExpzBH1acuxRv70");
const newTempFile = templateDoc.makeCopy(tempFolder);
const openDoc = DocumentApp.openById(
newTempFile.getId());
const body = openDoc.getBody();
body.replaceText("{a}", info['Carimbo de data/hora'][0]);
body.replaceText("{b}", info['E-mail'][0]);
body.replaceText("{c}", info['Your Name'][0]);
openDoc.saveAndClose();
const blobPDF =
newTempFile.getAs(MimeType.PDF);
const pdfFile = pdfFolder.createFile(blobPDF).setName(info['Your Name'][0] + " " + "-" + " " + info['Carimbo de data/hora'][0]);
tempFolder.removeFile(newTempFile);
return pdfFile;
}
Eu baseei esse código JavaScript acima no vídeo abaixo:
https://youtu.be/EpZGvKIHmR8
Segue um trecho de código que talvez possa ajudar:
const ss = SpreadsheetApp.openById("167fJ2b8Gxty6ki1aNRhwmDaYBWKrrdiqEwkyEd8e8MM");
const sheetResponse = ss.getSheetByName("Respostas ao formulário 1");
const data = sheetResponse.getRange(sheetResponse.getLastRow(), 3, sheetResponse.getLastRow(), 3).getValues();
const dataCountry = sheetResponse.getRange(sheetResponse.getLastRow(), 4, sheetResponse.getLastRow(), 4).getValues();
const sheetParam = ss.getSheetByName("Page2");
const dataParam = sheetParam.getRange(1, 1, sheetParam.getLastRow(), sheetParam.getLastColumn()).getValues();
Logger.log('Columns Page2: %s ', dataParam[0])
for (var i=1; i <
dataParam.length; i++) {
Logger.log('Your Name Page2 Column Value [%d]: %s',1, dataParam[1][0])
}
for (var i=0; i <
dataCountry.length - 1; i++) {
Logger.log('Form Column "Country": %s',dataCountry[i][0])
}
for (var i=0; i <
data.length - 1; i++) {
Logger.log('Form Column "Your Name": %s',data[i][0]);
}
Se quiser colocar, por exemplo, o país do form no documento, acho que precisa fazer um body.replaceText("{d}", info['Your Country'][0]);
Se for pegar o número (número 4 do exemplo), acho que poderia fazer algo como:
const sheetResponse = numberCountrySheet();
body.replaceText("{d}", sheetResponse);
Contexto Geral do Projeto
Breve descrição do projeto:
https://www.youtube.com/watch?v=Hnc2SUO79_I
Eu baseei esse código JavaScript acima no vídeo abaixo:
https://youtu.be/EpZGvKIHmR8
Prazo de Entrega: Não estabelecido