¿Cómo rellenar las casillas de verificación del formulario de Google?

He analizado la pregunta ” ¿Es posible ‘rellenar’ un formulario de Google usando datos de una hoja de cálculo de Google? ” Y el código proporcionado en la respuesta (gracias Mogsdad) funciona bien para las preguntas de texto del tipo de texto de Google. Mi pregunta es: ¿es posible rellenar previamente una checkbox, escribir la pregunta del formulario de Google?

Por ejemplo, si tengo una hoja de cálculo existente con una entrada para “Nombres” y una de las entradas es “Fred, Barney” sería posible, a través de la encoding, tener un formulario prefill con las casillas marcadas para “Fred” y ” Barney “debajo de un” checkbox “Escriba la pregunta del formulario de Google?

Gracias, Greig

El patrón básico para cada respuesta puede repetirse para la mayoría de los otros tipos. Por ejemplo, esto funciona para la opción múltiple:

item = items[i].asMultipleChoiceItem(); var respItem = item.createResponse(resp); 

Sin embargo, una checkbox puede ser difícil, ya que puede tener un elemento, varios elementos e incluso “otras” respuestas. Cuando la respuesta se graba en su hoja de cálculo, aparecerá como una cadena separada por comas; cuando se recibe en un evento de envío de formularios (por ejemplo, en una función de activación), obtenemos una matriz (… donde todas las respuestas están en el primer elemento de la matriz, en una cadena separada por comas). El método createResponse() para un checkboxItem espera una matriz de opciones válidas … para que podamos proporcionar eso con un poco de javascript magic:

  item = items[i].asCheckboxItem(); // Response is a CSV string, need array var respArray = resp.split(/ *, */); var respItem = item.createResponse(respArray); 

EDIT: Google tiene un error con CheckboxItems y MultipleChoiceItems, cuando se usa con las opciones “Otros” habilitadas. Esas “otras” opciones están permitidas, pero se procesan incorrectamente en la URL precompletada y, como resultado, no aparecen en el formulario mostrado. Por favor, mira y protagoniza Issue 4454 .

Aquí hay una versión actualizada de la función de ¿Es posible “rellenar” un formulario de Google usando datos de una hoja de cálculo de Google? , actualizado para manejar listas, respuestas múltiples y respuestas de casillas de verificación. Esta versión es más general, se puede adaptar a los títulos de la hoja de cálculo. BONUS: si agrega una columna etiquetada como “URL prellenada”, el script escribirá allí sus URL generadas.

captura de pantalla

 /** * Use Form API to generate pre-filled form URLs * * https://stackoverflow.com/a/26395487/1677912 */ function evenBetterBuildUrls() { var ss = SpreadsheetApp.getActive(); var sheet = ss.getSheetByName("Form Responses 1"); var data = ss.getDataRange().getValues(); // Data for pre-fill var headers = data[0]; // Sheet headers == form titles (questions) var formUrl = ss.getFormUrl(); // Use form attached to sheet var form = FormApp.openByUrl(formUrl); var items = form.getItems(); var urlCol = headers.indexOf("Prefilled URL"); // If there is a column labeled this way, we'll update it // Skip headers, then build URLs for each row in Sheet1. for (var row = 1; row < data.length; row++ ) { Logger.log("Generating pre-filled URL from spreadsheet for row="+row); // build a response from spreadsheet info. var response = form.createResponse(); for (var i=0; i= 0) { var urlRange = sheet.getRange(row+1,urlCol+1).setValue(editResponseUrl); } } }; 

Cuando edite el formulario, complete los valores que desea que se llenen previamente.

A continuación, obtenga la pre-filled URL

enter image description here

Este es el último Script que he desarrollado, funciona muy bien para mí.

Actualización y enlace previo al formulario de Google.

Esta secuencia de comandos no se apagará, ya que sabemos que el tiempo de ejecución es de 6 minutos. Tengo que hacer que este script funcione con el activador de envío de formulario de google y un activador manual en la función para obtener la corrección láser.

Nota :

  1. debes cambiar todos los números con tu celular específico
  2. Especialmente debe cambiar su entrada de formulario en la última fila del script con la suya (Eche un vistazo a la entrada de pic evry con una entrada única fija)

Hay un pequeño problema en el script proporcionado como respuesta.

 var ss = SpreadsheetApp.getActive(); var sheet = ss.getSheetByName("Form Responses 1"); var data = ss.getDataRange().getValues(); // Data for pre-fill 

Los datos variables se refieren a la hoja activa (ss), no a la hoja (hoja) “Form Responses 1”. Esto podría ser intencional, pero pensé que debería destacarlo si alguien más está usando la misma hoja para el pre-llenado y las respuestas.

    Intereting Posts