Como crear un formulario con Google Apps Script

Poder crear un formulario con Google Apps Script nos permite dar una potencia a nuestras aplicaciones espectacular. Podemos crear formularios específicos para temas específicos con información que tengamos de otros spreadsheets. Podemos generar cientos de formularios especializados con un simple código.


La forma de acceder a esto es mediante el FormApp tal y como podréis ver en este código:
function Test()
{
  var url = CreateForm();
  Logger.log(url);
}

function CreateForm()
{
   var spreadsheet = SpreadsheetApp.getActiveSpreadsheet();
   var genero = ["Hombre", "Mujer", "Otro"];
   var form = FormApp.create("TestForm");
   form.addDateItem().setTitle("Fecha de nacimiento");
   form.addCheckboxItem().setChoiceValues(genero).setTitle("Genero");
   form.addScaleItem().setBounds(1, 10).setTitle("Marca tu nivel en Google Apps Script");
   form.setConfirmationMessage("Gracias por poner tus datos");
   form.setCollectEmail(true); 
   form.setDestination(FormApp.DestinationType.SPREADSHEET, spreadsheet.getId());
   return form.getPublishedUrl();
}

Cada vez que ejecutéis la función os creará un formulario vinculado al spreadsheet actual, así que cuidado con ejecutarlo muchas veces :) El link a cada formulario lo tenéis en los logs y si vais a el veréis algo como esto:


Este link al formulario lo podéis distribuir con Google Apps Script sin problemas por email o incrustarlo en una web solo por poner un par de ejemplos.

Si una vez el formulario está creado queréis modificarlo tal vez este link os puede ayudar.

Espero que os haya servido, no dudéis en hacerme llegar vuestras problemas al implementar formularios con Google Apps Script.

Nos vemos

16 comentarios:

  1. Cómo le quito la información del footer de los formularios de google
    Este contenido no ha sido creado ni aprobado por Google

    Y cómo puedo personalizar el css de los formularios.
    Gracias

    ResponderEliminar
    Respuestas
    1. Amigo, lo que pides no se puede hacer :)

      Lo que si se puede hacer es crear un sistema de formularios que no sea más que una web que obtenga datos. (con el mismo aspecto de un form, pero siendo una web)

      Fácil no es, pero es algo que de vez en cuando implemento para mis clientes cuando tienen necesidades como la tuya. Si te interesa puedes ponerte en contacto conmigo para hablar del tema: https://www.tutorialesgoogleappscripts.com/p/como-contratar-mis-servicios-de.html

      Eliminar
  2. Hola, lo primero agradecer vuestra información y ayuda, estoy introduciéndome en este mundillo de los scripts de google y veo que me pueden ayudar mucho. Necesitaría poder recorrer las preguntas de un formulario y comprobar si son correctas, incorrectas o no se han respondido. ¿cómo podría realizarlo? Gracias

    ResponderEliminar
    Respuestas
    1. Las respuestas de un Google Form se apuntan en una hoja de cálculo de google. Desde ahí puedes ver los resultados. Ahora bien, tendrías que decidir cuando quieres tratar los datos... cuando se responden, cada x tiempo, etc... Espero haberte ayudado. Coméntame si necesitas algo más.

      Eliminar
  3. Hola! gracias por la info. Me gustaría preguntarte como instroduciste el formulario como tal acá en esta página web, es que estoy desarrollando una y precisamente me gustaría colocar el formulario en la misma página. Saludos!

    ResponderEliminar
  4. Hola me encanta tu trabajo, estoy generando un documento para pasar asistencia en mi colegio mediante formulario, con una pregunta tan simple como presente o tarde, el tema es que no logro hacer que se ponga el nombre del formulario según una casilla "b2" (2, 2), lo otro que necesito es que el formulario se guarde con un nombre especifico de la casilla "b3" (3, 2), pero que quede en la misma carpeta que el documento de donde es creado (google sheet). Estoy dispuesto a pagar por la ayuda si es necesario, necesito otros codigos también de todas formas.
    Saludos

    ResponderEliminar
    Respuestas
    1. Te lo miro a ver si se puede hacer facil, dame unos dias.
      Ahora por ahora, como mínimo por unos meses, no acepto nuevos proyectos debido a causas personales, pero tranquilo, si se puede hacer fácil te publicaré la solución al problema.
      Nos vemos!

      Eliminar
    2. amigo por casualidad encontró una posible solución? saludos.

      Eliminar
  5. No sale mi nombre
    Saludos
    jose.jimenez@beleneduca.cl

    ResponderEliminar
  6. Hola buenas tardes, queria saber como puedo crear un formulario tomando de base toda la informacion en google sheets?

    ResponderEliminar
  7. buenas tardes, como podria darle formato html al formulario? slds.

    ResponderEliminar
    Respuestas
    1. Hasta donde yo se, no puedes. Lo que si que puedes hacer es montar una web con google apps script (https://www.tutorialesgoogleappscripts.com/2015/02/como-crear-una-web-con-google-apps.html) con el formato html que quieras. Fácil no es, pero es la única manera que conozco para hacer lo que quieres. Suerte!

      Eliminar
  8. Hola, deseo crear un formulario que algunas casillas las llene automáticamente, por ejemplo, en una casilla del formulario me pida "id del cliente" y al digitarlo, se llene automáticamente, el nombre, la dirección y teléfono de ese cliente.

    ResponderEliminar
    Respuestas
    1. Hola , siento decirlo, pero creo que lo que pides no se puede hacer con Google Forms. Tal vez haya alguna manera, pero de existir, no la conozco. Tal vez puedas probar montandote tu una pequeña web que se comporte como un formulario....

      Eliminar
  9. Heey!
    Hola, desconocía esta parte de Google Forms y Google Apps Script jaja, solo tengo una duda, cómo puedo impedirle al usuario que envíe el formulario cuando tengo dos checks similares?

    Ej.
    check 1: SPA (Lunes 11 de Mayo a las 16:00pm)
    check 2: Caminata (Lunes 11 de Mayo a las 16:00pm)
    check 3: Mini torneo de Tennis (Martes 12 de Mayo a las 17:00pm)

    El usuario no puede enviar el formulario en caso de seleccionar el check 1 y check 2 porque son eventos diferentes, pero en el mismo horario.

    Si me podrías ayudar te lo agradecería mucho! :D

    ResponderEliminar
  10. amigo quiero hacer en forms una lista despligable dependiente de otra

    ResponderEliminar

Tal vez te interese