Inserindo Dados do Formulário Elementor Diretamente na Planilha do Google Sheet com Apps Scripts - Bruno Devx - BR Criativus

post #4804

Inserindo Dados do Formulário Elementor Diretamente na Planilha do Google Sheet com Apps Scripts

Publicado em: 26/03/2024 / Atualizado em: 26/03/2024

Categorias: BlogApps ScriptsGoogleGoogle SheetsJavaScript (JS)JS
function doPost(e) {
  // Obtém os parâmetros da requisição
  var parametros = e.parameter;
  var planilha = SpreadsheetApp.getActiveSpreadsheet();

  // Usa 'form_name' para determinar o nome da aba e remove 'form_name' e 'form_id' dos dados a serem inseridos
  var nomeAba = parametros.form_name;
  delete parametros.form_name;
  delete parametros.form_id;

  // Verifica se a aba existe e a cria, se necessário
  var aba = planilha.getSheetByName(nomeAba);
  if (!aba) {
    aba = planilha.insertSheet(nomeAba);
  }

  // Lê os cabeçalhos existentes ou cria uma nova linha de cabeçalho se a aba for nova
  var linhaCabecalho = aba.getRange(1, 1, 1, aba.getMaxColumns()).getValues()[0];
  var cabecalhosExistentes = linhaCabecalho.filter(function(c) { return c !== ""; });
  var colunaFinal = cabecalhosExistentes.length;
  var cabecalhosNovos = Object.keys(parametros);

  // Verifica se todos os cabeçalhos novos já existem, se não, adiciona-os
  cabecalhosNovos.forEach(function(cabecalho) {
    if (cabecalhosExistentes.indexOf(cabecalho) === -1) {
      colunaFinal += 1;
      aba.getRange(1, colunaFinal).setValue(cabecalho);
      cabecalhosExistentes.push(cabecalho); // Atualiza a lista de cabeçalhos existentes
    }
  });

  // Garante que o cabeçalho esteja em negrito
  aba.getRange(1, 1, 1, colunaFinal).setFontWeight("bold");

  // Mapeia os valores para inserir de acordo com a ordem atualizada dos cabeçalhos existentes
  var valoresInsercao = cabecalhosExistentes.map(function(cabecalho) {
    return parametros[cabecalho] || ""; // Retorna um valor vazio se o cabecalho não existir nos parâmetros
  });

  // Adiciona os valores na próxima linha disponível
  aba.appendRow(valoresInsercao);
}
Teste de Envio POST
Teste de Envio POST

Para realizar o teste acima, você pode acessar o site: https://reqbin.com/

Publicações recomendadas:



Sugira uma publicação

Envie uma mensagem e sugira um publicação sobre um assunto que tenha dificuldades de resolver.

Clique aqui e entre em contato