0% acharam este documento útil (0 voto)
30 visualizações4 páginas

Function createCustomForm

O documento contém um código em JavaScript que cria formulários personalizados no Google Forms a partir de dados em uma planilha do Google Sheets. Ele itera por cada aba da planilha, processa os dados e adiciona perguntas ao formulário com base em diferentes tipos, como resposta curta, múltipla escolha e parágrafo. Além disso, o código inclui funções específicas para adicionar cada tipo de pergunta ao formulário.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
30 visualizações4 páginas

Function createCustomForm

O documento contém um código em JavaScript que cria formulários personalizados no Google Forms a partir de dados em uma planilha do Google Sheets. Ele itera por cada aba da planilha, processa os dados e adiciona perguntas ao formulário com base em diferentes tipos, como resposta curta, múltipla escolha e parágrafo. Além disso, o código inclui funções específicas para adicionar cada tipo de pergunta ao formulário.
Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato DOCX, PDF, TXT ou leia on-line no Scribd

function createCustomForms() {

// Obtém a planilha ativa


const spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
const sheets = spreadsheet.getSheets(); // Obtém todas as abas da
planilha

Logger.log('ID da planilha: ' + spreadsheet.getId());

// Itera por cada aba para processá-la


sheets.forEach(function(sheet) {
// Nome da aba
const sheetName = sheet.getName();
Logger.log('Processando a aba: ' + sheetName);

// Obtém os dados da aba


const data = sheet.getDataRange().getValues();

// Verifica se existem dados na planilha (pelo menos 2 linhas, uma


para o cabeçalho)
if (data.length > 1) {
const form = FormApp.create('Formulário Personalizado - ' +
sheetName); // Nome do formulário baseado na aba
Logger.log('Formulário criado: ' + form.getTitle());

// Itera sobre cada linha de dados, começando pela segunda linha


(índice 1) para ignorar o cabeçalho
for (let i = 1; i < data.length; i++) {
const questionType = data[i][0]; // Tipo da pergunta
(primeira coluna)
const questionTitle = data[i][1]; // Título da pergunta
(segunda coluna)
const options = data[i][2] ? data[i][2].split(',') : []; //
Opções (terceira coluna), divididas por vírgula
const isRequired = data[i][3] === 'Sim'; // Verifica se a
pergunta é obrigatória (quarta coluna)

// Verifica se o título da pergunta e o tipo de pergunta são


válidos
if (questionTitle && questionType) {
Logger.log('Adicionando pergunta: ' + questionTitle);

// Adiciona a pergunta ao formulário com base no tipo


switch (questionType.toLowerCase()) {
case 'resposta curta':
addShortAnswerQuestion(form, questionTitle, isRequired);
break;
case 'parágrafo':
addParagraphQuestion(form, questionTitle, isRequired);
break;
case 'múltipla escolha':
addMultipleChoiceQuestion(form, questionTitle, options,
isRequired);
break;
case 'checkbox':
addCheckboxQuestion(form, questionTitle, options,
isRequired);
break;
case 'dropdown':
addDropdownQuestion(form, questionTitle, options,
isRequired);
break;
case 'escala linear':
addLinearScaleQuestion(form, questionTitle, isRequired);
break;
case 'grelha múltipla escolha':
addMultipleChoiceGridQuestion(form, questionTitle,
options, isRequired);
break;
case 'grelha checkbox':
addCheckboxGridQuestion(form, questionTitle, options,
isRequired);
break;
case 'data':
addDateQuestion(form, questionTitle, isRequired);
break;
case 'hora':
addTimeQuestion(form, questionTitle, isRequired);
break;
default:
Logger.log('Tipo de pergunta desconhecido: ' +
questionType);
}
} else {
Logger.log('Título da pergunta ou tipo inválido na linha ' +
(i + 1));
}
}

// Exibe o link para editar o formulário


Logger.log('Formulário criado com sucesso: ' +
form.getEditUrl());
} else {
Logger.log('Nenhum dado encontrado na aba "' + sheetName + '"');
}
});
}

// Função para adicionar uma pergunta de resposta curta


function addShortAnswerQuestion(form, title, isRequired) {
const item = form.addTextItem();
item.setTitle(title).setRequired(isRequired);
Logger.log('Pergunta de resposta curta criada: ' + title);
}

// Função para adicionar uma pergunta de parágrafo


function addParagraphQuestion(form, title, isRequired) {
const item = form.addParagraphTextItem();
item.setTitle(title).setRequired(isRequired);
Logger.log('Pergunta de parágrafo criada: ' + title);
}

// Função para adicionar uma pergunta de múltipla escolha


function addMultipleChoiceQuestion(form, title, options, isRequired) {
const item = form.addMultipleChoiceItem();

item.setTitle(title).setChoiceValues(options).setRequired(isRequired);
Logger.log('Pergunta de múltipla escolha criada: ' + title);
}

// Função para adicionar uma pergunta de checkbox


function addCheckboxQuestion(form, title, options, isRequired) {
const item = form.addCheckboxItem();

item.setTitle(title).setChoiceValues(options).setRequired(isRequired);
Logger.log('Pergunta de checkbox criada: ' + title);
}

// Função para adicionar uma pergunta de dropdown


function addDropdownQuestion(form, title, options, isRequired) {
const item = form.addListItem();

item.setTitle(title).setChoiceValues(options).setRequired(isRequired);
Logger.log('Pergunta de dropdown criada: ' + title);
}

// Função para adicionar uma pergunta de escala linear


function addLinearScaleQuestion(form, title, isRequired) {
const item = form.addScaleItem();
item.setTitle(title).setBounds(1, 5).setLabels('1 (Muito
insatisfeito)', '5 (Muito satisfeito)').setRequired(isRequired);
Logger.log('Pergunta de escala linear criada: ' + title);
}

// Função para adicionar uma pergunta de grelha de múltipla escolha


function addMultipleChoiceGridQuestion(form, title, options,
isRequired) {
const item = form.addGridItem();
item.setTitle(title)
.setRows(options)
.setColumns(['Ótimo', 'Bom', 'Regular', 'Ruim'])
.setRequired(isRequired);
Logger.log('Pergunta de grelha de múltipla escolha criada: ' +
title);
}

// Função para adicionar uma pergunta de grelha de checkbox


function addCheckboxGridQuestion(form, title, options, isRequired) {
const item = form.addGridItem();
item.setTitle(title)
.setRows(options)
.setColumns(['Sim', 'Não'])
.setRequired(isRequired);
Logger.log('Pergunta de grelha de checkbox criada: ' + title);
}

// Função para adicionar uma pergunta de data


function addDateQuestion(form, title, isRequired) {
const item = form.addDateItem();
item.setTitle(title).setRequired(isRequired);
Logger.log('Pergunta de data criada: ' + title);
}

// Função para adicionar uma pergunta de hora


function addTimeQuestion(form, title, isRequired) {
const item = form.addTimeItem();
item.setTitle(title).setRequired(isRequired);
Logger.log('Pergunta de hora criada: ' + title);
}

PROMP MODELO: Produza em formato tabela, um questionário que deve ter na primeira linha
da tabela os seguintes componentes: Tipo de Pergunta, Título da Pergunta, Opções de
Resposta, Obrigatório. Na coluna relativa ao tipo de pergunta deve introduzir os dados de
acordo com as seguintes categorias: Resposta Curta, Múltipla Escolha, Parágrafo, Checkbox,
Grelha Checkbox, Data, Dropdown, Escala Linear, Hora, Grelha Múltipla Escolha. O conteúdo
do questionário deve ser sobre preposições in, on, at, just, since, for, already, yet, ever e never
e ele deve conter 15 perguntas.

Você também pode gostar