首页 > 解决方案 > 过滤来自谷歌脚本事件(e)的输入/数据

问题描述

我有以下脚本,它接受谷歌表单上的输入,用这些输入制作一个文档,然后发送一封附有文档的电子邮件。它工作正常,但我需要过滤一些响应,但我不知道如何过滤事件中的数据。

表格上的问题之一是询问人们想要什么样的文件:

在此处输入图像描述

现在,我只完成了第二个选项(Licença Especial em Pecúnia)的脚本。我需要从表单中过滤数据,所以当我选择第一个选项(Substituiçãode Chefia)时,它会从不同的模板生成不同的文档。现在,function afterSubmit(e)在表单提交时触发。

请原谅 vars 和 consts 的葡萄牙语名称,我将这个问题的重要名称改为英语。

 function afterSubmit(e) {
  const info = e.namedValues; 
  const pdfFileLP = createPDFLP(info);

  const url = e.namedValues['Anexos ao ofício'][0];
  
  function getIdFromUrl(url) {return url.match(/[-\w]{25,}$/);};
  var idAnexo = getIdFromUrl(url);

  const nrof = e.namedValues['Numeração do ofício'][0];

  function pdfAnexado(idAnexo,nrof) {return DriveApp.getFileById(idAnexo).setName("Anexos do ofício of. " + nrof + "-PGE/PRF.pdf");};
  var pdfAnexo = pdfAnexado(idAnexo);

  eprotocolo(e.namedValues['Expresso do solicitante'][0],nrof,pdfFileLP,pdfAnexo);
}

function eprotocolo(email,ofi,pdfFileLP,pdfAnexo){

  var EmailTemp = HtmlService.createTemplateFromFile("mailLP");
  EmailTemp.mail = email;
  var htmlMessage = EmailTemp.evaluate().getContent();

  GmailApp.sendEmail("estag.pedron@pge.pr.gov.br","Of. " + ofi + "-PGE/PRF",
  "SEU EMAIL NÃO SUPORTA O FORMATO HTML, FAVOR RESPONDER ESTE E-MAIL PARA SOLUCIONAR O PROBLEMA OU ENTRAR EM CONTATO PELO TELEFONE (41)3281-6392.",{

    from: "procuradoriafuncional@gmail.com", name: "Gerador de ofícios da PRF", htmlBody: htmlMessage,
    replyTo: email, cc: email,
    attachments: [pdfFileLP, pdfAnexo]

  });


}

function createPDFLP(info) {
    
  const pdfFolder = DriveApp.getFolderById("1mgNPhM9f2U0BWrDK0FAfCYyq968rJ3E8");
  const tempFolder = DriveApp.getFolderById("1FfW3Jn9hHARpBU8t8szlQ2YwR9OPR1ZV");
  const templateChefia = DriveApp.getFileById("1qP3A8O27Ms8OuybaqrQ6jQBB_PQpo-RhDU9xjIw_a44");
  const templateLP = DriveApp.getFileById("1lRab5lPdbRcdl4gaI3zonFseE180cNu4-hWaovamerc");

  const newTempFileLP = templateLP.makeCopy(tempFolder);

  const openDocLP = DocumentApp.openById(newTempFileLP.getId());
  const bodyLP = openDocLP.getBody();
  bodyLP.replaceText("{of}", info['Numeração do ofício'][0]);
  bodyLP.replaceText("{data}", info['Data do ofício'][0]);
  bodyLP.replaceText("{serv}", info['Nome completo'][0]);
  bodyLP.replaceText("{rg}", info['Número do RG'][0]);
  bodyLP.replaceText("{autos}", info['Numero dos autos'][0]);
  bodyLP.replaceText("{prazo}", info['Prazo'][0]);
  bodyLP.replaceText("{procurador}", info['Procurador solicitante'][0]);
  bodyLP.replaceText("{orgao}", info['GRHS de destino'][0]);
  openDocLP.saveAndClose();

  const blobPDFLP = newTempFileLP.getAs(MimeType.PDF);
  const pdfFileLP = pdfFolder.createFile(blobPDFLP).setName("Of. " + info['Numeração do ofício'][0] + "-PGE/PRF.pdf");
  tempFolder.removeFile(newTempFileLP);
  return pdfFileLP;}

标签: javascriptgoogle-apps-scriptgoogle-sheetsgoogle-forms

解决方案


如果有人好奇,我在最后做了一个简单的 if 语句:

function createPDFLP(info) {
  const pdfFolder = DriveApp.getFolderById("1mgNPhM9f2U0BWrDK0FAfCYyq968rJ3E8");
  const tempFolder = DriveApp.getFolderById("1FfW3Jn9hHARpBU8t8szlQ2YwR9OPR1ZV");
  const templateChefia = DriveApp.getFileById("1qP3A8O27Ms8OuybaqrQ6jQBB_PQpo-RhDU9xjIw_a44");
  const templateLP = DriveApp.getFileById("1lRab5lPdbRcdl4gaI3zonFseE180cNu4-hWaovamerc");
  
  const tipo = info['Tipo de ofício'][0];

  if(tipo == "Licença Especial em Pecúnia"){
    const newTempFileLP = templateLP.makeCopy(tempFolder);

    const openDocLP = DocumentApp.openById(newTempFileLP.getId());
    const bodyLP = openDocLP.getBody();
    bodyLP.replaceText("{of}", info['Numeração do ofício'][0]);
    bodyLP.replaceText("{data}", info['Data do ofício'][0]);
    bodyLP.replaceText("{serv}", info['Nome completo'][0]);
    bodyLP.replaceText("{rg}", info['Número do RG'][0]);
    bodyLP.replaceText("{autos}", info['Numero dos autos'][0]);
    bodyLP.replaceText("{prazo}", info['Prazo'][0]);
    bodyLP.replaceText("{procurador}", info['Procurador solicitante'][0]);
    bodyLP.replaceText("{orgao}", info['GRHS de destino'][0]);
    openDocLP.saveAndClose();

    const blobPDFLP = newTempFileLP.getAs(MimeType.PDF);
    const pdfFileLP = pdfFolder.createFile(blobPDFLP).setName("Of. " + info['Numeração do ofício'][0] + "-PGE/PRF.pdf");
    tempFolder.removeFile(newTempFileLP);
    return pdfFileLP;
  } else if (tipo == "Substituição de Chefia") {
    const newTempFileSC = templateChefia.makeCopy(tempFolder);

    const openDocSC = DocumentApp.openById(newTempFileSC.getId());
    const bodySC = openDocSC.getBody();
    bodySC.replaceText("{of}", info['Numeração do ofício'][0]);
    bodySC.replaceText("{data}", info['Data do ofício'][0]);
    bodySC.replaceText("{servi}", info['Nome completo'][0]);
    bodySC.replaceText("{rg}", info['Número do RG'][0]);
    bodySC.replaceText("{autos}", info['Numero dos autos'][0]);
    bodySC.replaceText("{prazo}", info['Prazo'][0]);
    bodySC.replaceText("{procurador}", info['Procurador solicitante'][0]);
    bodySC.replaceText("{orgao}", info['GRHS de destino'][0]);
    bodySC.replaceText("{periodo}", info['Período que o autor alega que ocupou cargo de chefia'][0]);
    openDocSC.saveAndClose();

    const blobPDFSC = newTempFileSC.getAs(MimeType.PDF);
    const pdfFileLP = pdfFolder.createFile(blobPDFSC).setName("Of. " + info['Numeração do ofício'][0] + "-PGE/PRF.pdf");
    tempFolder.removeFile(newTempFileSC);
    return pdfFileLP;

    }

  }

推荐阅读