【问题标题】:Filter inputs/data from a event (e) on google script过滤来自谷歌脚本事件(e)的输入/数据
【发布时间】:2021-03-02 12:28:01
【问题描述】:

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

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

现在,我只完成了第二个选项(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;}

【问题讨论】:

    标签: javascript google-apps-script google-sheets google-forms


    【解决方案1】:

    如果有人好奇,我在最后做了一个简单的 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;
    
        }
    
      }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2015-02-05
      • 2021-04-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-11-11
      相关资源
      最近更新 更多