SummArg | Cursos y recursos para webmasters

Recibir información en un formulario y colocarla dentro de un archivo Excel

El script apgForm nos permite colocar la información recibida a través de un formulario web directamente dentro de un archivo .xls en muy pocos pasos. La información queda automáticamente dividida en columnas y cada usuario que completa el formulario ocupa una fila aparte del anterior, de modo que nuestros datos quedan perfectamente ordenados en un mismo archivo.

Instalar ApgForm

Primero deberemos descargar el archivo desde este link. Lo descomprimimos y subimos el archivo llamado apgform1.7.php a una carpeta en nuestro servidor. A dicha carpeta le asignamos permisos de escritura (CHMOD 777).

Deberemos subir un formulario web que será procesado por apgform1.7.php, este es un ejemplo básico para generar el form de la imagen anterior. Llamemos al archivo form.html y en su interior coloquemos:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>APGFORM</title>
</head>
<body>
<form action="apgform1.7.php" method="post">
<label for="input_nombres">Nombre y Apellido</label>
<input id="input_nombres" type="text" name="nombres" value="" />
<br />
<br />
<label for="input_sexo">Sexo</label>
<select id="select_sexo" name="sexo">
<option value="M">Masculino</option>
<option value="F">Femenino</option>
</select>
<br /><br />
<label for="dni">DNI</label>
<input id="dni" type="text" name="dni" value="" />
<br /><br />
<label for="domicilio">Domicilio</label>
<input id="domicilio" type="text" name="domicilio" value="" />
<br /><br />
<label for="localidad">Localidad</label>
<input id="localidad" type="text" name="localidad" value="" />
<br /><br />
<label for="cp">Codigo Postal</label>
<input id="cp" type="text" name="cp" value="" />
<br /><br />
<label for="telefono">Telefono</label>
<input id="telefono" type="text" name="telefono" value="" />
<br /><br />
<input type="reset" name="reset" value="Limpiar" />
<input type="submit" name="submit" value="Enviar" />
</form>
</body>
</html>

Coloquemos el archivo dentro del mismo directorio que nuestro archivo apgform1.7.php. Ahora desde nuestro navegador insertemos la ruta para ver nuestro archivo form.html y llenemos los datos a modo de prueba.

Si todo marcha bien, desde nuestro cliente FTP deberemos observar que se generó un archivo form.xls

Al descargar el archivo form.xls vía FTP o navegador observarán los datos subidos a través del formulario.

El archivo apgform1.7.php puede ser editado para ajustarse mejor a nuestros requerimientos. Para modificar el nombre y la ruta del archivo en donde se guardan los datos, debemos buscar y modificar la siguiente línea:

$array['filename'] = "form.xls";    //Set the file to save the information in

Los archivos a los que es redirigido el usuario en los casos de error o de éxito al completar el formulario se configuran desde:

$success = "exito.html";
$error = "error.html";

Esperamos les sea de utilidad!

Dejar un comentario

  1. hola.
    he probado tu formulario y va de lujo. funciona todo a la perfeccion, solo tengo una pregunta a cerca de algo que no se hacer. Necesito, ademas de escribir los datos del formulario en un xls (funciona perfecto) que se envien los datos a una direccion de email, no hace falta que sea la hoja excel. cuando pongo al formulario la accion de apgform1.7.php, entonces deja de enviarme los datos al mail.
    muchas gracias y un saludo

  2. la verdad que me encanta el ejemplo, pero no se porque pero no me funciona, si podrias explicarmelo mejor seria genial, porq lo necesito para hacer una hoja de invitados a una fiesta, y quiero que se anoten desde mi blog, y luego una vez terminado, poder retirar el archivo con la lista de todos los que se anotaron y la puedo imprimir

  3. Nekko

    Fede, cuando quieras podés postear en nuestro foro indicándonos en que parte se te presenta mayor problema. Sería bueno saber cómo está armado el formulario de tu blog y de qué modo integraste el script a dicha plataforma. Saludos!

  4. Alejandro

    el archivo php atrapa cualquier variable o tiene que ser las que aparecen en el formulario?,… porque he revisado el php y no veo las mismas variables…

  5. Alejandro

    Genial!!!!,… ya lo probe, y no hay que hacer mas que apuntar al php y convierte toda la data en un xls…..Xevere!!!

  6. Nekko

    Buenisimo!

  7. Me parece interesantisimo, lo bajo y para ver como me va

  8. Angie

    Muchas gracias por el tutorial. Tengo una duda, necesito que al final de cada fila aparezca un checkbox. Me explico: la información que me llega al documento xls son los participantes de una competición. Necesito que se cree automaticamente una casilla de verificación que me permita establecer si está apto o no para participar. Quiero automatizar el proceso.
    Muchas gracias de antemano. Espero su repuesta.

  9. Angie

    Hola, les cuento, todo va genial, pero tengo un pequeño problema, antes de enviar el formulario tengo un checbox en el que el usuario debe aceptar las condiciones(Campo obligatorio). Al generar el archivo xls se imprime también ese campo(codiciones = on) y no me interesa que se añada al archivo. ¿Cómo puedo generar el archivo sin que imprima el checbox?
    Si me pueden ayudar les estaría muy agradecída.

  10. gonzalo

    hola a todos a mi me da error en esta linea
    <form action=”apgform1.7.php” method=”post”>

  11. amigos a mi no me sale ese archivo de excel que podria haberme pasado, alguien me puede ayudar con los pasos

  12. Buenas. Me funciona perfectamente. Una pregunta, alguien sabe si a parte de que lleguen los datos a un excel, me pueden llegar simultáneamente al mail como un formulario normal?? además, hay alguna forma para que en el excel se vean datos adjuntos como PDFs, JPG, etc??

    Muchas gracias

  13. Buenas tardes tengo una pregunta, la cual es algo urgente, como podria recojer mediante este codigo varios select multiples usando este mismo codigo, me urge para un trabajo de la universidad gracias.

  14. Excelente codigo te agradezco mucho el mejor

  15. Me daba error también con el ejemplo…

    Solo cambie a esto:

    <form <strong action="apgform1.7.php"

    Si lo intentan con su propio formulario seguramente escribieron esta parte de forma manual y no les dio error.

    Saludos!!

  16. Luque

    hola

    ¿y para poder hacer lo opuesto?

    Es decir teniendo este archivo en excel, llevarlo al mismo formulario para cargar nuevamente los datos en el formulario a partir del archivo en excel el cual seria la base de datos (sin pasar por sql, ajax, etc).

  17. ¿cual es el limite maximo de celdas a llenar en excel?

    y ¿el tamaño maximo del archivo xls? es decir, ¿cada cuanto tiempo hay que vaciar el xls para que no pese tanto?

  18. Veo algunas consultas sobre como enviar los datos a un correo. Bueno creo que tendrian que recuperar las variables, si quieren pueden usar un array y/o formar una tabla html con los datos dentro, luego utilizar la funcion mail para hacer el envio de los datos. En google hay bastante informacion para enviar correos con PHP.

  19. hola
    lo probe y esta muy bueno…

    pero ¿se puede hacer el proceso contrario? Es decir, que desde ese mismo archivo excel resultante, se pueda cargar el formulario web html? Es decir el proceso inverso… gracias

  20. Gabriel

    Porque al abrir el archivo, me sale el error de que la extención y el formato no coinciden?

    form.xls, pero dice que es form.xls.txt?, como podria corregir esto. Gracias

  21. Hola

    Funciona perfectamente. Gracias. Pero quisiera saber como puedo hacer que exporte correctamente los caracteres especiales (UTF_8)

Dejar un comentario