De MySQL a Excel
Las hojas de cálculo son sin duda una de las herramientas ofimáticas más utilizadas. Además, es uso corriente utilizarlas como “bases de datos”, aunque no sean la mejor herramienta para ello. Por eso es muy típico que se nos pida que mandemos un “Excel” con datos de interés extraídos de bases de datos instaladas en el entorno web: entradas de registros, listas de pedidos, etc.
Se pueden encontrar por Internet muchos scripts escritos, por ejemplo, en PHP que vuelcan los contenidos de una base de datos, por ejemplo, MySQL en un archivo Excel.
Sin embargo, estos scripts vuelcan realmente los datos en archivos CSV, que aunque correctamente interpretados por Excel, no permiten dar un “estilo adecuado” a la hoja de cálculo resultante.
Que los datos sean presentados de una forma clara y “con estilo” es algo de vital importancia cuando van destinados a los clientes o a los jefes :-) .
Afortunadamente, las nuevas versiones de Excel permiten la lectura de ficheros XML que ya incorporan información relevante para la presentación.
Para facilitaros la vida, en la zona de descargas hemos incluido unos scripts que permiten descargar bases de datos MySQL en formato XML compatible con Excel XP o superior.
Esperamos que estos scripts os sirvan de utilidad y comprobéis las posibilidades que os ofrecen: se aceptan sugerencias y comentarios…
Categoría: Programación web









9 Comentarios Deja tu comentario
1. Antonio Angel | July 14th, 2006 at 11:19 am
He probado el script haciendole unos cambios para ejecutarlo sin tener que poner los datos del server y demas, pero de que forma se podria hacer esto mismo con solo una tabla definida anteriormente de la base de datos, solo una.
Gracias.
2. kakashi | June 22nd, 2007 at 12:57 pm
seria de real utilidad si solo si se pudiera hacer que mostrara los registro de una sola tabla.
3. Ixino | September 19th, 2007 at 4:00 am
He modificado para que no tenga que poner los datos del servidor y para que me coja una serie de tablas y algunos campos de esas tablas (de forma un tanto enfarragosa…) pero tengo un problema, el archivo que me crea es de unos 8 megas pero en algunas exportaciones, 1 de cada 2, se me corta el proceso, en diversos lugares, a alguien le ha pasado o sabe como corregirlo? . Gracias
4. Marcos | September 20th, 2007 at 8:16 am
Sin saber cómo lo estás ejecutando (como linea de comandos, o via http) ni donde (servidor remoto, servidor local) sin saber versión del PHP y MySQL, etc es dificil saber que le sucede.
Puede ser que el tiempo que tarda en extraer los datos sea superior al tiempo de ejecución del PHP en ese servidor y se corte cuando alcanza ese tiempo. Puede ser una mala conexión que se interrumpa por el alto tráfico. O simplemente un fallo en la programación con algunas condiciones que hayas introducido…
5. Ixino | September 21st, 2007 at 2:54 am
Es via http, en servidor remoto, usando php 5, pero es que el error me da en un 50% de los casos, de 10 exportaciones 5 salen mal, y cuando me da el error me crea el *.xls pero con un tamaño menor, cada vez que da el error lo da con un tamaño distinto, una vez pueden ser 200kb y otra 2 megas, con lo que me resulta bastante confuso
6. Marcos | October 7th, 2007 at 6:59 am
Hola de nuevo Ixino.
Por lo que dices, te crea siempre el xls, pero en cierto momento deja de enviar el fichero y lo corta.
O bien hay algun caracter que provoca un error o bien es por que tarda demasiado en contestar el servidor.
Mira si el error te da siempre con el mismo fichero (misma consulta SQL) , si es así posiblemente haya algun caracter que lo cause.
Si el error es independiente de la consulta debe de ser algo relacionado con los tiempos.
¡Suerte!
7. Ixino | October 11th, 2007 at 4:13 am
Marcos se trata o trataba de algo relacionado con los tiempo porque dividi el archivo xls en 2 una parte de la informacion a uno y el restro al otro y me lo hace de forma correcta, aunque hay algun metodo como para comprimir la información?, Gracias!
8. Marcos | October 16th, 2007 at 12:40 am
Hola!
Bueno, existe un modulo en Apache (que supongo que es lo que usas como servidor web) el mod-gzip que se supone que comprime los datos enviados al navegador para aligerar la comunicación hacia el cliente.
Deberás activarlo en el INI del Apache:
AddModule mod_gzip.c
LoadModule gzip_module libexec/mod_gzip.so
9. Fran | October 17th, 2007 at 1:34 am
Ok! Muchas gracias tio!
Deja tu comentario
Tags HTML Permitidos:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>
Subscribirse a esta entrada via RSS Feed