Crear y agregar una gráfica de Barras en PHPWord


PHPWord nos permite crear gráficas de barra y otros tipos de forma nativa, es decir no se requieren plugins extras para lograrlo.

Los documentos con graficas de barras funcionan en MS Word, LibreOffice, incluso visible en Word Online.

Para entender con el articulo les recomiendo leer como crear un documento de PHPWord.

Una vez que ya tenemos el PHPWord descargado y un archivo PHP listo para escribir codigo, empezamos.

Código

<?php
include "../vendor/autoload.php";

use PhpOffice\PhpWord\Autoloader;
use PhpOffice\PhpWord\Settings;

$word = new  PhpOffice\PhpWord\PhpWord();

$section1 = $word->AddSection();
$section1->addText("MI GRAFICA",array("size"=>22,"bold"=>true));

$categorias = array('Uva', 'Manzana', 'Pera', 'Melon', 'Sandia');
$valores = array(120, 500, 222, 305 , 144);
$colores  = array( '1abc9c', '2c3e50', '9b59b6', 'f1c40f', 'e74c3c' );

$chart = $section1->addChart("bar", $categorias, $valores); // Agregar grafica
$chart->getStyle()->setWidth(160 * 36000); // Asignar ancho
$chart->getStyle()->setHeight(90 * 36000); // Asignar Alto
$chart->getStyle()->setColors( $colores ); // Asignar colores

$chart->getStyle()->setShowGridX(true);
$chart->getStyle()->setShowGridY(true);
$chart->getStyle()->setShowAxisLabels(true);

$filename = "chart-".time().".docx";
$word->save($filename,"Word2007");

header("Content-Disposition: attachment; filename=$filename");
readfile($filename); // or echo file_get_contents($filename);
unlink($filename);  // remove temp file

?>

Lineas 2,4, 5 y 7: Incluir la librería de PHPWord, cargaremos las clases necesarias y creamos la instancia del documento de Word.

Lineas 9 y 10: Agregar una sección y un titulo.

Lineas 12 a 14: Definir variables para las categorías, los valores y los colores.

Es necesario que los 3 arrays tengan el mismo tamaño o la misma cantidad de elementos, a excepción de los colores solo que si hay pocos colores entonces se van a repetir.

Lineas 16 a 19: Crear la gráfica, asignar ancho, altura y colores.

Las medidas ancho y alto están en EMU donde 1mm = 3600 EMU.

Lineas 21 a 23: Agregar parámetros, 2 para mostrar las lineas de la gráfica en X,Y y otro para mostrar las etiquetas o categorías en el eje X.

Lineas 25 y 26: Asignar el nombre de archivo y a guardar el archivo.

Lineas 28 a 30: Si estamos trabajando en un servidor, entonces vamos a necesitar descargar el archivo. Con estas lineas descargamos el archivo y lo borramos del servidor.

Resultado

Este es el resultado del documento que se genera.

Conclusión

Crear gráficas con PHPWord parece fácil y es relativamente fácil.

Con este script vas a poder crear tus documentos y agregar gráficas para dar una mejor presentación, muy pronto espero incluir este tipo de gráficas en los sistemas de la Evilnapsis Store empezando con Inventio Max.

Ustedes que opinan de PHPWord?

Leave a comment