Foros del Web » Programando para Internet » PHP »

Generar gráficos de encuesta online en word usando PHP

Estas en el tema de Generar gráficos de encuesta online en word usando PHP en el foro de PHP en Foros del Web. Hola, buenas soy algo nuevo aquí, bueno siempre leo las ayudas pero esta es la segunda vez que pregunto, así que espero ser claro en ...
  #1 (permalink)  
Antiguo 05/08/2014, 14:28
 
Fecha de Ingreso: marzo-2012
Ubicación: Manta- Ecuador
Mensajes: 27
Antigüedad: 12 años, 7 meses
Puntos: 0
Generar gráficos de encuesta online en word usando PHP

Hola, buenas soy algo nuevo aquí, bueno siempre leo las ayudas pero esta es la segunda vez que pregunto, así que espero ser claro en lo que me esta causando molestias :(

Les explico... tengo que realizar una pagina web donde se pueda generar encuestas, mesa redondo... algo así como una participación públicas... el caso es que necesito evidenciar esos resultados en un documento... es decir tengo que permitir que el usuario quien creo la encuesta pueda al final de la misma obtener la estadística de la misma... esta estadística quisiera que fuese en word mostrada en gráficos, tengo una pequeña idea de como a partir de un documento de word con códigos que simularían una variable, puedo agregar contenido a estas variables y así generar el texto ([URL="http://www.desarrolloweb.com/articulos/1826.php"]lo que está en esta pagina[/URL]).
Pero mi idea es formar gráficos en word que demuestren los resultado... hay alguna forma de hacer esto?.
De antemano gracias.
  #2 (permalink)  
Antiguo 05/08/2014, 14:54
Avatar de Patriarka  
Fecha de Ingreso: enero-2011
Ubicación: Moreno, Buenos Aires, Argentina
Mensajes: 2.851
Antigüedad: 13 años, 9 meses
Puntos: 288
Respuesta: Generar gráficos de encuesta online en word usando PHP

en word?? si que te la vas a complicar mucho
pensa algo mas facil o usa la libreria oficial http://phpword.codeplex.com/
  #3 (permalink)  
Antiguo 05/08/2014, 15:57
Colaborador
 
Fecha de Ingreso: mayo-2008
Ubicación: $MX['VZ']['Xalapa']
Mensajes: 3.005
Antigüedad: 16 años, 6 meses
Puntos: 528
Respuesta: Generar gráficos de encuesta online en word usando PHP

Si no es necesario que pueda editar los datos descargados en el archivo, te sugiero mejor crear el gráfico como imagen, y hacer un pdf con la imagen dentro, una vez creada la gráfica en imagen, esto es relativamente fácil con programas para pasar html a pdf, como domdf o tcpdf.
  #4 (permalink)  
Antiguo 06/08/2014, 00:41
Avatar de NSD
NSD
Colaborador
 
Fecha de Ingreso: mayo-2012
Ubicación: Somewhere
Mensajes: 1.332
Antigüedad: 12 años, 6 meses
Puntos: 320
Respuesta: Generar gráficos de encuesta online en word usando PHP

Un documento de Word, no es mas que un ZIP con otra extencion, la via mas sencilla es entonces, crear una plantilla en Word con el tipo de grafico y luego personalizar los datos desde php, con esto te ahorras de estar paleando con librerias complejas y demas.

Te pongo un ejemplo, en tu servidor local crea una carpeta llamada "ChartWord", dentro de esa carpeta, crea un script llamado "index.php" y dentro de este index, pega el siguiente codigo:
Código PHP:
Ver original
  1. <?php
  2.     // Los datos de tu estadistica.
  3.     $data = array(
  4.         "titulo" => "Resultados de encuesta",
  5.         "datos" => array(
  6.             "Bueno" => 10,
  7.             "Muy bueno" => 30,
  8.             "Malo" => 22,
  9.             "Muy malo" => 12
  10.         )
  11.     );
  12.  
  13.     $tmp_name = microtime(true)."_word_chart.docx";
  14.     $file_edit = "word/charts/chart1.xml";
  15.     copy("chart.doc", $tmp_name);
  16.  
  17.     $zip = new ZipArchive ;
  18.     $zip->open($tmp_name);
  19.     $chart = $zip->getFromName($file_edit);
  20.     $zip->deleteName($file_edit);
  21.  
  22.     $chart = str_replace("[TITULO]", $data["titulo"], $chart);
  23.     $chart = str_replace("[CANT-VALORES]", count($data["datos"]), $chart);
  24.     $nombres = $valores = "";
  25.     $nro = 0;
  26.     foreach($data["datos"] as $nombre => $valor)
  27.     {
  28.         $nombres .= "<c:pt idx=\"$nro\"><c:v>$nombre</c:v></c:pt>";
  29.         $valores .= "<c:pt idx=\"$nro\"><c:v>$valor</c:v></c:pt>";
  30.         $nro++;
  31.     }
  32.     $chart = str_replace("[NOMBRES]", $nombres, $chart);
  33.     $chart = str_replace("[VALORES]", $valores, $chart);
  34.  
  35.     $zip->addFromString($file_edit, $chart);
  36.     $zip->close();
  37.  
  38.     header('Content-Description: File Transfer');
  39.     header('Content-Type: application/octet-stream');
  40.     header('Content-Disposition: attachment; filename=estadistica.docx');
  41.     header('Content-Transfer-Encoding: binary');
  42.     header('Expires: 0');
  43.     header('Cache-Control: must-revalidate, post-check=0, pre-check=0');
  44.     header('Pragma: public');
  45.     header('Content-Length: '.filesize($tmp_name));
  46.  
  47.     ob_clean();
  48.     flush();
  49.     readfile($tmp_name);
  50.  
  51.     unlink($tmp_name);

Luego, dentro de esa misma carpeta, pon el archivo .doc que te adjunto, este archivo es la plantilla. Luego ejecuta el script y veras que se descarga un archivo .docx que tiene el gráfico de los valores del array que definiste al inicio.

NOTA: El archivo que te adjunto no puede abrirse con el word, si lo intentas te dará error de formato.
Archivos Adjuntos
Tipo de Archivo: doc chart.doc (19,0 KB (Kilobytes), 3 visitas)
__________________
Maratón de desafíos PHP Junio - Agosto 2015 en FDW | Reglamento - Desafios

Etiquetas: encuesta, usando, variable, 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 13:10.