¿Has eliminado información de un formulario de Google Drive y los datos siguen apareciendo en el resumen de respuestas?
Hace casi dos años publicamos un script que permitía modificar los datos introducidos y que apareciesen reflejados en las estadísticas.
Desgraciadamente Google sigue sin incluir dicha funcionalidad en su herramienta y, tras las continuas peticiones de ayuda a través del soporte del blog he optado por mejorar el script en Python para que os resulte algo más cómodo su uso 😉
Mejoras
Se ha incluido
- obtención de los campos existentes en el formulario (evitando tener que inyectar jQuery en html para obtenerlos)
- edición del fichero CSV para evitar al usuario cambiar los nombres de los campos en la primera fila
Procedimiento
- Seguiremos los pasos 1 al 4 del artículo original para obtener el fichero CSV (y, opcionalmente, evitar que nadie pueda añadir nuevas respuestas mientras estamos haciendo labores de «mantenimiento» 😉 )
- Descargaremos el nuevo script python.
- Modificamos el script para indicar
- Url del formulario de Google Docs (recomiendo modificar únicamente el ID del formulario, dejando el resto de la dirección web intacta, especialmente el «formResponse» del final que no aparece en la url que has copiado del navegador 😉 )
- Ruta al fichero CSV con los datos
- Lanzaremos el script para que introduzca los datos en nuestro formulario web.
Misión cumplida
Sólo queda esperar que el script termine (esperemos que con éxito jeje).
Me alegra (y enorgullece) que, después de tanto tiempo (prácticamente 2 años), siga siendo de utilidad y que os animéis a contactar vía soporte técnico para comentar vuestras dudas y problemas puesto que
- me ayuda a conocer los problemas que plantea
- introducir mejoras como las presentadas en esta nueva versión
Desde aquí daros las gracias y animaros a seguir comentando todo aquello que consideréis que merece la pena mejorar.
estimados amigos me siento muy sastifecha por este progtama que es un exito gracias
Me gustaMe gusta
Genial!! No sabes lo que me alegra saber que se te ha sido de utilidad.
¿Habías usado la versión anterior del script? Si es así, ¿te resulta más sencillo el nuevo?
Gracias a ti por comentar.
Me gustaMe gusta
Me a sido de mucha ayuda… Estaba haciendo una encuesta y un gracioso agrego 33 votos a una opción de la encuesta, gracias este post pude borrar esos datos y seguir con mi encuesta como si nada hubiera pasado 😀
Me gustaMe gusta
Sólo por éso merece la pena haber creado una nueva versión del script 🙂
Gracias por comentar
Me gustaMe gusta
No se si tu script me podría servir, te explico mi problema, realicé un formulario con una cuenta de gmail, en principio no iba a ser nada importante pero luego comencé a aplicarle fórmulas, reglas y he realizado algo que realmente funciona, automatizado y sobre todo útil, sin embargo fui tan ingenuo que lo hice en mi drive personal y lo quiero trasladar a la cuenta de la empresa.
Para ello he realizado una copia del formulario original a la cuenta de la empresa y claro, las respuestas del formulario se tornan a «0».
He obtenido la id del formulario y la he copiado dentro del script, he comprobado que al copiar la ruta en el navegador me salga la ventana de insertar una nueva entrada del formulario, ejecuté el script y comenzaron a salir los puntos, así que en principio la ejecución ha sido correcta pero el formulario sigue a 0, ¿alguna idea?
Para llegar aquí me he tirado cerca de tres horas y media googleando y arreglando los mensajes de error que me salían, no tenía las librerías de request ni lxml, la versión de python que había instalado (la última), daba errores con tu script ya que por lo visto en esta versión había que poner paréntesis a los print o algo así, evidentemente no soy un hacha de la programación, lo que soy es cabezón pro, eso sí xD
En fin, que cuando se han acabado los problemas y he visto que salían los puntitos ahora ya no se que hacer pues al no salirme ningún error no se como capear este problema.
Saludos y muchas gracias por compartir conocimientos 😉
Me gustaMe gusta
Nada como ser «cabezón» para que las cosas terminen funcionando 😉
Voy a tener que actualizar el script a la última versión de Python y proporcionar un método que simplifique la instalación de dependencias (queda anotado para una futura versión, gracias)
Respecto al problema ¿es posible que los cálculos afecten a la inserción de datos?
Mis formularios son muchísimo más simples por lo que tendríamos que estudiarlo. Si te parece, contáctame a través del soporte técnico y hablamos ¿ok?
Me gustaMe gusta
Amigo perdón por ignorancia, pero por qué haces el script en python y no directamente en una secuencia de comandos¿¿¿¿¿¿
Me gustaMe gusta
No te disculpes, ignorancia la mía: ¿por script te refieres a Bash o a macro para Drive?
Salu2
Me gustaMe gusta
«Las secuencias de comandos, escritas en JavaScript, se ejecutan en los servidores de Google y tienen acceso a la mayoría de los productos de Google. Esto facilita la automatización de distintas tareas.» (Tomado de https://support.google.com/sites/answer/1224162?hl=es). Es que estoy necesitando urgentemente solucionar un problema con una encuesta que hice por este medio pero no manejo las herramientas de software que tu mensionas. Muchas gracias.
Me gustaMe gusta
¿Viste el enlace a las macros en Drive que enlacé dn el comentario anterior? Si sabes programar no debería ser difícil resolver el problema que mencionas.
¿Qué necesitas? Si lo prefieres, hablamos a través del soporte técnico del blog.
Me gustaMe gusta
Hola, necesito tu ayuda
Me quedé en el paso 4.
Descargué el script y luego edité con el bloc de notas lo de Url del formulario de Google Docs.
Hasta ahi todo bien, el problema que tengo es eso de la «Ruta al fichero CSV con los datos»
Supongo que se refiere al FICHERO_DATOS=’./respuestas2.csv’ pero ¿Que pongo? ¿El nombre del archivo descargado del formulario? (Ejemplo: =’./EncuestaEcologica.csv’ ) ¿O la ubicación en donde se guardó? (Ejemplo: =’C:\Users\NombreUsuario-PC\Downloads’)
Bueno hice eso, le di guardar y como no podía abrirlo (para ejecutarlo) tuve que descargar el python. Luego de descargarlo me permitía abrirlo pero se cerraba al instante y me salía de error :
File «C:\Users\NombreUsuario-PC\Downloads\update_google_drive_form_v2.=.py» line 34. in
Import request
ImportError: no module named request
Desde ya gracias por la ayuda.
Me gustaMe gusta
Hola «señor»
la ruta al fichero puede ser relativa (como en el ejemplo) o absoluta pero, siempre debe incluir el nombre del fichero.
Respecto al problema que indica, necesita instalar el módulo «requests» de Python para que funcione (le recomendaría instalar y usar pip)
Cualquier cosa, no dude en preguntar 😉
Me gustaMe gusta
Hola y gracias por la respuesta
Este era el problema que tenía inicialmente (El archivo descargado abierto con el bloc de notas para editar (1), nombre del archivo del formulario (a), ID del formulario (b), y el error que salía (C) http://prntscr.com/8u43rn
Como me dijo, instalé el módulo “requests” de Python desde la página oficial pero me sale el siguiente error (tanto si lo instalo desde el primer link de descarga como el segundo) http://prntscr.com/8u4ai5
Y respecto al pip también me sale el mismo error de arriba y se cierra rápido
Me gustaMe gusta
De aquí los descargué (https://pypi.python.org/pypi/requests/#downloads) (https://pypi.python.org/pypi/pip#downloads)
Me gustaMe gusta
Le recomendaría mirar en Internet cómo instalar Pip correctamente en Windows como paso previo a seguir el resto del artículo.
Si necesitase ayuda adicional, no dude en contactar a través del «soporte técnico»
Suerte y un saludo
Me gustaMe gusta
Compañero! muchas gracias ante todo… pero una te hago una observación para que a nadie le vuelva a doler la cabeza como a mi. Creo que no se menciona, ni en este post, ni en el que escribiste hace dos años, que el formulario en cuestión NO PUEDE ESTAR DIVIDIDO EN PÁGINAS, ya que el script no pulsa en el botón «continuar», lógicamente… una obviedad que me ha hecho perder casi una hora buscando el fallo (gajes del oficio…)
Me gustaMe gusta
@manolitotic
Me gustaMe gusta
@manolitotic gracias por ahorrar mi tiempo, muchas gracias!
Me gustaMe gusta
Hola, hemos instalado el Python 2.7.10 luego hemos instalado el python request y pip correctamente.
Intentamos volcar el script modificando solo el ID del formulario y la ruta del CSV y no da ningun error pero tampoco hace nada.
La ruta del CSV tiene que estar en alguna carpeta en especifico ( ya que pones «./» o podria ponerlo en la «c:\nombre.csv»
gracias
Me gustaMe gusta
Mientras indiques correctamente la ruta al fichero puedes tenerlo donde te venga mejor.
Respecto al problema ¿tiene varias páginas el form?
Me gustaMe gusta
Hola buenos dias cuando ejecuto el script lo carga bien muestra los puntos pero solo me ingresa la marca temporal pero no carga las respuestas
Me gustaMe gusta
Hola el script cuando lo ejecuto solo me ingresa la marca temporal pero no me ingresa las respuestas
Espero me puedas ayudar
Me gustaMe gusta
HOLA PODRIAS HACER UN VIDEO
Me gustaMe gusta
Es una gran idea Camilo pero no suelo grabar vídeos.
Lo dejo anotado como posible proyecto pero actualmente no puedo dedicar ese tiempo (sorry)
Me gustaMe gusta
podrías ayudarme estoy desesperado
Me gustaMe gusta
Buenos días. Esta es la solución que estaba buscando. Sin embargo, al realizar el proceso no sé como correr el script. La verdad no se nada de programación y seguí las instrucciones pero llegué hasta ese punto.
Me gustaMe gusta
Vamos a tener que crear una interfaz gráfica para el script (idea cúbica a depurar) 😉
¿En que punto tienes problemas Brian?
Me gustaMe gusta
Hola, alguien me puede decir porque al momento de cargar mis respuestas las reviso en el formulario de gmail y dice que tengo 3 repuestas, pero al revisarlas están en blanco…..
Ayuda por favor
Me gustaMe gusta
Hola
Llevo un buen rato intentando utilizar el contenido de este post y estoy más perdida que un pulpo en un garaje.
En un principio, al ejecutar el script me dice:
File «importar.py», line 77, in setRespuestas
payload[header[colnum]]=col
IndexError: list index out of range
Lo arreglé poniendo «and colnum<len(header):" en la condición del if.
Después ya se ejecutó correctamente, sacando los puntos correspondiente, pero sin añadir las respuestas en ningún sitio.
¿Es posible que ese cambio que hice impida que se ejecute correctamente?
El formulario es entero, sin cortes por página.
Un saludo
Me gustaMe gusta
Hola, encontraste alguna solución? estoy igual que tu..
Me gustaMe gusta
Hola Michael, te recomiendo echar un vistazo a la versión más reciente del script en la que se solucionaron los problemas que habéis tenido.
Tienes un enlace al principio del artículo.
Espero noticias por si hubiese que actualizar nuevamente el script (en ocasiones, cuando Google implementa algún cambio, deja de funcionar y hay que «afinarlo»)
Suerte y un saludo 👍
Me gustaMe gusta
Podrías facilitarnos una versión nueva para python 3, actualmente estoy usando 3.7.5.
saludos y muchas gracias.
Me gustaMe gusta
Anoto echarle un vistazo lo antes posible, Rodrigo
Gracias por avisar y por el interés por probarlo 👍
Me gustaMe gusta
Se ha actualizado el código a Python 3 (en mi caso 3.8.1).
Próximamente se publicará artículo con recomendaciones adicionales de uso pero no son imprescindibles por lo que puedes descargarlo directamente de Github y probar.
Ya contarás. Un saludo y gracias por dar la «voz de alarma», Rodrigo 👍
Me gustaMe gusta