function createCustomForms() {
// Obtém a planilha ativa
const spreadsheet = [Link]();
const sheets = [Link](); // Obtém todas as abas da
planilha
[Link]('ID da planilha: ' + [Link]());
// Itera por cada aba para processá-la
[Link](function(sheet) {
// Nome da aba
const sheetName = [Link]();
[Link]('Processando a aba: ' + sheetName);
// Obtém os dados da aba
const data = [Link]().getValues();
// Verifica se existem dados na planilha (pelo menos 2 linhas, uma
para o cabeçalho)
if ([Link] > 1) {
const form = [Link]('Formulário Personalizado - ' +
sheetName); // Nome do formulário baseado na aba
[Link]('Formulário criado: ' + [Link]());
// Itera sobre cada linha de dados, começando pela segunda linha
(índice 1) para ignorar o cabeçalho
for (let i = 1; i < [Link]; 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) {
[Link]('Adicionando pergunta: ' + questionTitle);
// Adiciona a pergunta ao formulário com base no tipo
switch ([Link]()) {
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:
[Link]('Tipo de pergunta desconhecido: ' +
questionType);
}
} else {
[Link]('Título da pergunta ou tipo inválido na linha ' +
(i + 1));
}
}
// Exibe o link para editar o formulário
[Link]('Formulário criado com sucesso: ' +
[Link]());
} else {
[Link]('Nenhum dado encontrado na aba "' + sheetName + '"');
}
});
}
// Função para adicionar uma pergunta de resposta curta
function addShortAnswerQuestion(form, title, isRequired) {
const item = [Link]();
[Link](title).setRequired(isRequired);
[Link]('Pergunta de resposta curta criada: ' + title);
}
// Função para adicionar uma pergunta de parágrafo
function addParagraphQuestion(form, title, isRequired) {
const item = [Link]();
[Link](title).setRequired(isRequired);
[Link]('Pergunta de parágrafo criada: ' + title);
}
// Função para adicionar uma pergunta de múltipla escolha
function addMultipleChoiceQuestion(form, title, options, isRequired) {
const item = [Link]();
[Link](title).setChoiceValues(options).setRequired(isRequired);
[Link]('Pergunta de múltipla escolha criada: ' + title);
}
// Função para adicionar uma pergunta de checkbox
function addCheckboxQuestion(form, title, options, isRequired) {
const item = [Link]();
[Link](title).setChoiceValues(options).setRequired(isRequired);
[Link]('Pergunta de checkbox criada: ' + title);
}
// Função para adicionar uma pergunta de dropdown
function addDropdownQuestion(form, title, options, isRequired) {
const item = [Link]();
[Link](title).setChoiceValues(options).setRequired(isRequired);
[Link]('Pergunta de dropdown criada: ' + title);
}
// Função para adicionar uma pergunta de escala linear
function addLinearScaleQuestion(form, title, isRequired) {
const item = [Link]();
[Link](title).setBounds(1, 5).setLabels('1 (Muito
insatisfeito)', '5 (Muito satisfeito)').setRequired(isRequired);
[Link]('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 = [Link]();
[Link](title)
.setRows(options)
.setColumns(['Ótimo', 'Bom', 'Regular', 'Ruim'])
.setRequired(isRequired);
[Link]('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 = [Link]();
[Link](title)
.setRows(options)
.setColumns(['Sim', 'Não'])
.setRequired(isRequired);
[Link]('Pergunta de grelha de checkbox criada: ' + title);
}
// Função para adicionar uma pergunta de data
function addDateQuestion(form, title, isRequired) {
const item = [Link]();
[Link](title).setRequired(isRequired);
[Link]('Pergunta de data criada: ' + title);
}
// Função para adicionar uma pergunta de hora
function addTimeQuestion(form, title, isRequired) {
const item = [Link]();
[Link](title).setRequired(isRequired);
[Link]('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.