Foros del Web » Programando para Internet » PHP »

[SOLUCIONADO] Exportar datos a word y excel desde php

Estas en el tema de Exportar datos a word y excel desde php en el foro de PHP en Foros del Web. Buenas, mi duda es la siguiente, me han pasado unas "plantillas" en word y en excel para que se generen automáticamente con una aplicación que ...
  #1 (permalink)  
Antiguo 19/04/2013, 01:25
 
Fecha de Ingreso: marzo-2013
Ubicación: Jaén, Andalucía
Mensajes: 129
Antigüedad: 11 años, 1 mes
Puntos: 2
Exportar datos a word y excel desde php

Buenas, mi duda es la siguiente, me han pasado unas "plantillas" en word y en excel para que se generen automáticamente con una aplicación que estoy desarrollando en php, mi consulta es, ¿Qué me recomiendan para hacerlo de la forma más eficiente y fácil posible? He estado leyendo por ahí de la clase fpdf, pero la cosa es que las plantillas son un poco complejas y son bastantes y tardaría bastante en hacer algo parecido desde php, saben alguna manera de pasar esos documentos a pdf pero en los que se pueda modificar los campos que me interesen? o cómo lo harían? Muchas gracias de ante mano!!! ;)
  #2 (permalink)  
Antiguo 19/04/2013, 02:09
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Exportar datos a word y excel desde php

No se entiende mucho lo que quieres.

Cita:
...unas "plantillas" en word y en excel para que se generen automáticamente con una aplicación que estoy desarrollando en php...
Quieres generar "plantillas" word y excel con php?

Luego nos hablas de fpdf.... que permite hacer pdf... no "plantillas" word y excel.

Si las plantillas son el modelo que debes reproducir en pdf no te quedará mas remedio que aprender a hacer pdf con fpdf u otras librerias similares que facilmente podrás encontrar en la red.
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #3 (permalink)  
Antiguo 19/04/2013, 02:18
 
Fecha de Ingreso: marzo-2013
Ubicación: Jaén, Andalucía
Mensajes: 129
Antigüedad: 11 años, 1 mes
Puntos: 2
Respuesta: Exportar datos a word y excel desde php

Gracias por responder, a mi realmente me da igual lo que se genere, vamos que por tu comentario es mucho mas simple exportar en la plantilla que me han dado no???? Me podéis echar un cable???? Muchas gracias :)

he encontrado éste código de [URL="http://www.programacionweb.net/articulos/articulo/?num=617"]aquí [/URL]
Código PHP:
Ver original
  1. <?php
  2.  
  3. // Lee la plantilla
  4. $plantilla = file_get_contents('plantilla.rtf');
  5.  
  6. // Agregamos los escapes necesarios
  7. $plantilla = addslashes($plantilla);
  8. $plantilla = str_replace('\r','\\r',$plantilla);
  9. $plantilla = str_replace('\t','\\t',$plantilla);
  10.  
  11. // Datos de la plantilla
  12. $nombre = $_POST["nombre"];
  13. $apellido = $_POST["apellido"];
  14. $fecha = date("d-m-Y", time());
  15.  
  16. // Procesa la plantilla
  17. eval( '$rtf = <<<EOF_RTF
  18. ' . $plantilla . '
  19. EOF_RTF;
  20. ' );
  21.  
  22. // Guarda el RTF generado, el nombre del RTF en este caso sera el apellido-nombre.fechaactual.rtf
  23. file_put_contents("$apellido-$nombre-$fecha.rtf",$rtf);
  24.  
  25. echo "<a href=\"$apellido-$nombre-$fecha.rtf\">descargar</a>";
  26. ?>
  27. <form action="<? $PHP_SELF; ?>" method="post" enctype="multipart/form-data">
  28.     <input name="nombre" type="text" />Nombre<br />
  29.     <input name="apellido" type="text" />Apellidos<br />
  30.     <input name="rtf" type="submit" value="Subir archivo" />
  31. </form>

pero me he topado con dos problemas: uno es que me lo guarda en el mismo directorio y en las descargas si luego pulsas descargar :S:S: ¿Cómo podría hacer para que solo lo descargue??? El otro es que dentro de las plantillas no me guarda los acentos y las tildes y muestra caracteres extraños, he probado a hacer esto y nada :S:S:S

Código PHP:
Ver original
  1. <?php
  2. ini_set("default_charset", "utf-8");
  3. mysql_query("SET NAMES 'utf8'"); .....
  4. utf8_encode($plantilla);
pero nada, con el resto de valores si me los guarda bien, pero los que trae de por si la plantilla no....

Lo que me gustaría aunque creo que no es posible, es saber si esos documentos que tengo en word, se pueden pasar a pdf(eso si se que se puede) pero habilitarlos para introducirles los datos php que quiera, no se si me explico....aunque si es muy enrreoso, que se exportan los word y punto.....

Última edición por kobety; 19/04/2013 a las 02:50
  #4 (permalink)  
Antiguo 19/04/2013, 03:16
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Exportar datos a word y excel desde php

Cita:
vamos que por tu comentario es mucho mas simple exportar en la plantilla que me han dado no????
Yo no he dicho esto.

Mira este post quizas te sirve.

http://www.forosdelweb.com/f18/php-w...9/#post4412971

Si aqui pones una ruta lo guardara en otro directorio siempre que tengas permisos de escritura

// Guarda el RTF generado, el nombre del RTF en este caso sera el apellido-nombre.fechaactual.rtf
file_put_contents("/laruta/"."$apellido-$nombre-$fecha.rtf",$rtf);

aqui tambien tendrás que poner la ruta

echo "<a href=\"...laruta...$apellido-$nombre-$fecha.rtf\">descargar</a>";

con unset() siempre puedes borrar el fichero cuando se haya bajado....
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 19/04/2013 a las 03:23
  #5 (permalink)  
Antiguo 19/04/2013, 03:21
 
Fecha de Ingreso: marzo-2013
Ubicación: Jaén, Andalucía
Mensajes: 129
Antigüedad: 11 años, 1 mes
Puntos: 2
Respuesta: Exportar datos a word y excel desde php

muchas gracias! el problema es k no me respeta las tildes y las ñ, he probado a hacer esto (a lo burro)

Código PHP:
Ver original
  1. $plantilla2 = str_replace("\'d3",'Ó',$plantilla);
  2. $plantilla3 = str_replace("\'f1",'ñ',$plantilla2);
  3. $plantilla4 = str_replace("\'f3",'ó',$plantilla3);
  4. $plantilla5 = str_replace("\'ed",'í',$plantilla4);

pero el problema es que luego me muestra " en lugar de todos los caracteres esos especiales :S:S:S hago un var_dump($plantilla5); y si me muestra todo bien (con todo el código de formato), por lo que el problema viene al hacer lo siguiente:
Código PHP:
Ver original
  1. eval( '$rtf = <<<EOF_RTF
  2. ' . $plantilla5 . '
  3. EOF_RTF;
  4. ' );

ahí me desmonta todos los caracteres especiales, alguien sabe como hacer para que me los mantenga???

Última edición por kobety; 19/04/2013 a las 05:15
  #6 (permalink)  
Antiguo 19/04/2013, 06:07
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Exportar datos a word y excel desde php

Has intentado $rtf=utf8_encode($rtf); o $rtf=utf8_decode($rtf); antes de file_put_contents(... en el caso de fpdf es necesario puesto que no acepta utf8... en el caso de los rtf podria ser algo similar.

(o antes en la plantilla $plantilla2 =utf8_encode($plantilla); o decode...)
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.
  #7 (permalink)  
Antiguo 20/04/2013, 10:40
 
Fecha de Ingreso: marzo-2013
Ubicación: Jaén, Andalucía
Mensajes: 129
Antigüedad: 11 años, 1 mes
Puntos: 2
Respuesta: Exportar datos a word y excel desde php

el lunes os cuento que he salido de viaje y no me he traido el proyecto conmigo :S:S::S espero que esa sea la solución!!! ya os comento! Un saludo y muchas gracias!!!
  #8 (permalink)  
Antiguo 22/04/2013, 02:16
 
Fecha de Ingreso: marzo-2013
Ubicación: Jaén, Andalucía
Mensajes: 129
Antigüedad: 11 años, 1 mes
Puntos: 2
Respuesta: Exportar datos a word y excel desde php

no me funciona con ninguno de ellos..... os dejo mi código a ver si sabéis que puedo hacer...muchas gracias de antemano!

Código PHP:
Ver original
  1. <html>
  2. <head>
  3. <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
  4. <title></title>
  5. </head>
  6.  
  7. <body>
  8.  
  9. <?php
  10. require_once('funciones.php');
  11. include('config.php');
  12. conectar('localhost',);
  13. ini_set("default_charset", "utf-8");
  14. mysql_query("SET NAMES 'utf8'");
  15. ini_set('error_reporting',0);
  16.  
  17. $link = mysql_connect("localhost")
  18.     or die ("Error al conectar a la base de datos.");
  19. mysql_select_db("campus2013", $link)
  20.     or die ("Error al conectar a la base de datos.");
  21.  
  22.  
  23. // Lee la plantilla
  24. $plantilla = file_get_contents('plantilla_titulo.rtf');
  25.  
  26.  
  27. // Agregamos los escapes necesarios
  28. $plantilla = addslashes($plantilla);
  29. $plantilla = str_replace('\r','\\r',$plantilla);
  30. $plantilla = str_replace('\t','\\t',$plantilla);
  31.  
  32. // Datos de la plantilla
  33. $nombre = $_POST["trabajador"];
  34. $curso = $_POST["curso"];
  35. $fechahoy = date("d-m-Y", time());
  36.  
  37. $plantilla2 = str_replace("\'d3",'Ó',$plantilla);
  38. $plantilla3 = str_replace("\'f1",'ñ',$plantilla2);
  39. $plantilla4 = str_replace("\'f3",'ó',$plantilla3);
  40. $plantilla5 = str_replace("\'ed",'í',$plantilla4);
  41. $plantilla5=utf8_encode($plantilla5);
  42. var_dump($plantilla5);
  43.  
  44. // Procesa la plantilla
  45. eval( '$rtf = <<<EOF_RTF
  46. ' . $plantilla5 . '
  47. EOF_RTF;
  48. ' );
  49.  
  50. // Guarda el RTF generado, el nombre del RTF en este caso sera el apellido-nombre.fechaactual.rtf
  51. file_put_contents("$nombre-$fechahoy.rtf",$rtf=utf8_decode($rtf));
  52.  
  53. echo "<body bgcolor='#FFFFE0'> <img src='imagenes/campus.png' width=178 height=80><br><br><br>";
  54.  
  55. echo "<a href=\"$nombre-$fechahoy.rtf\">descargar</a>";
  56.  
  57. //@unlink($f); //Borro el temporal creado
  58. ?>
  59.  
  60. </body>
  61. </html>
  #9 (permalink)  
Antiguo 22/04/2013, 04:51
 
Fecha de Ingreso: marzo-2013
Ubicación: Jaén, Andalucía
Mensajes: 129
Antigüedad: 11 años, 1 mes
Puntos: 2
Respuesta: Exportar datos a word y excel desde php

voy a poner el tema como solucionado, y voy a abrir un nuevo post con el problema! gracias!!!
  #10 (permalink)  
Antiguo 22/04/2013, 05:59
Colaborador
 
Fecha de Ingreso: marzo-2008
Ubicación: Sabadell
Mensajes: 4.897
Antigüedad: 16 años, 1 mes
Puntos: 574
Respuesta: Exportar datos a word y excel desde php

Cita:
Has intentado $rtf=utf8_encode($rtf); o $rtf=utf8_decode($rtf); antes de file_put_contents(... en el caso de fpdf es necesario puesto que no acepta utf8... en el caso de los rtf podria ser algo similar.

(o antes en la plantilla $plantilla2 =utf8_encode($plantilla); o decode...)
Estas haciendo esto

....
41 $plantilla5=utf8_encode($plantilla5);
...
51 file_put_contents("$nombre-$fechahoy.rtf",$rtf=utf8_decode($rtf));

Primero encode y despues decode...!!! No se si es la solución pero parece contradictorio.

Los replaces los haces para quitar los codigos raros, la idea de hacer el encode o decode es para evitar esos repalces....

A y esto

$plantilla =utf8_encode($plantilla);

o esto

$plantilla = str_replace("\'d3",'Ó',$plantilla);

una transformación sobre la misma variable funciona perfectamente, no hace falta que crees versiones de lo mismo.

Igual que en una variable numérica

$num=1;

$num=$num+1; //<--- ahora $num=2

o

$num+=$num; //<--- ahora $num=2

o

$num++; //<--- ahora $num=2
__________________
Quim
--------------------------------------------------
Ayudar a ayudar es una buena práctica!!! Y da buenos resultados.

Última edición por quimfv; 22/04/2013 a las 06:07

Etiquetas: excel, word
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 16:54.