Crear o Actualizar Gráficos de Presentaciones PowerPoint en PHP
Descripción general
Este artículo describe cómo crear gráficos de presentaciones de PowerPoint en Java. También puedes actualizar los gráficos. Cubre los siguientes temas.
Gráfico: Normal
- Crear gráfico PowerPoint con Java
- Crear gráfico de presentación con Java
- Crear gráfico de presentación PowerPoint con Java
Gráfico: Dispersión
- Crear gráfico de dispersión con Java
- Crear gráfico de dispersión PowerPoint con Java
- Crear gráfico de dispersión en presentación PowerPoint con Java
Gráfico: Circular
- Crear gráfico circular con Java
- Crear gráfico circular PowerPoint con Java
- Crear gráfico circular en presentación PowerPoint con Java
Gráfico: Mapa de árbol
- Crear gráfico de mapa de árbol con Java
- Crear gráfico de mapa de árbol PowerPoint con Java
- Crear gráfico de mapa de árbol en presentación PowerPoint con Java
Gráfico: Acciones
- Crear gráfico de acciones con Java
- Crear gráfico de acciones PowerPoint con Java
- Crear gráfico de acciones en presentación PowerPoint con Java
Gráfico: Caja y bigotes
- Crear gráfico de caja y bigotes con Java
- Crear gráfico de caja y bigotes PowerPoint con Java
- Crear gráfico de caja y bigotes en presentación PowerPoint con Java
Gráfico: Embudo
- Crear gráfico de embudo con Java
- Crear gráfico de embudo PowerPoint con Java
- Crear gráfico de embudo en presentación PowerPoint con Java
Gráfico: Ráfaga solar
- Crear gráfico ráfaga solar con Java
- Crear gráfico ráfaga solar PowerPoint con Java
- Crear gráfico ráfaga solar en presentación PowerPoint con Java
Gráfico: Histograma
- Crear histograma con Java
- Crear histograma PowerPoint con Java
- Crear histograma en presentación PowerPoint con Java
Gráfico: Radar
- Crear radar con Java
- Crear radar PowerPoint con Java
- Crear radar en presentación PowerPoint con Java
Gráfico: Multicategoría
- Crear gráfico multicategoría con Java
- Crear gráfico multicategoría PowerPoint con Java
- Crear gráfico multicategoría en presentación PowerPoint con Java
Gráfico: Mapa
Acción: Actualizar gráfico
- Actualizar gráfico PowerPoint con Java
- Actualizar gráfico de presentación con Java
- Actualizar gráfico de presentación PowerPoint con Java
Crear gráfico
Los gráficos ayudan a las personas a visualizar rápidamente datos y obtener ideas, algo que no siempre es evidente a partir de una tabla o hoja de cálculo.
¿Por qué crear gráficos?
Con los gráficos puedes
- agregar, condensar o resumir grandes cantidades de datos en una sola diapositiva de una presentación
- exponer patrones y tendencias en los datos
- deducir la dirección y el impulso de los datos a lo largo del tiempo o con respecto a una unidad de medida específica
- detectar valores atípicos, aberraciones, desviaciones, errores, datos sin sentido, etc.
- comunicar o presentar datos complejos
En PowerPoint, puedes crear gráficos mediante la función insertar, que proporciona plantillas usadas para diseñar muchos tipos de gráficos. Usando Aspose.Slides, puedes crear gráficos habituales (basados en tipos de gráficos populares) y gráficos personalizados.
Creando gráficos normales
Pasos: Crear gráfico
- Pasos: Crear gráfico PowerPoint
- Pasos: Crear gráfico de presentación
- Pasos: Crear gráfico de presentación PowerPoint
Pasos de código:
- Crear una instancia de la clase Presentation.
- Obtener la referencia de una diapositiva mediante su índice.
- Añadir un gráfico con algunos datos y especificar el tipo de gráfico que prefieras.
- Añadir un título al gráfico.
- Acceder a la hoja de datos del gráfico.
- Borrar todas las series y categorías predeterminadas.
- Añadir nuevas series y categorías.
- Añadir nuevos datos de gráfico para las series.
- Añadir un color de relleno para las series del gráfico.
- Añadir etiquetas para las series del gráfico.
- Guardar la presentación modificada como archivo PPTX.
Este código PHP muestra cómo crear un gráfico normal:
# Instancia una clase de presentación que representa un archivo PPTX
$pres = new Presentation();
try {
# Accede a la primera diapositiva
$sld = $pres->getSlides()->get_Item(0);
# Agrega un gráfico con sus datos predeterminados
$chart = $sld->getShapes()->addChart(ChartType::ClusteredColumn, 0, 0, 500, 500);
# Establece el título del gráfico
$chart->getChartTitle()->addTextFrameForOverriding("Sample Title");
$chart->getChartTitle()->getTextFrameForOverriding()->getTextFrameFormat()->setCenterText(NullableBool::True);
$chart->getChartTitle()->setHeight(20);
$chart->hasTitle();
# Establece que la primera serie muestre valores
$chart->getChartData()->getSeries()->get_Item(0)->getLabels()->getDefaultDataLabelFormat()->setShowValue(true);
# Establece el índice para la hoja de datos del gráfico
$defaultWorksheetIndex = 0;
# Obtiene la hoja de datos del gráfico
$fact = $chart->getChartData()->getChartDataWorkbook();
# Elimina las series y categorías generadas por defecto
$chart->getChartData()->getSeries()->clear();
$chart->getChartData()->getCategories()->clear();
$s = $chart->getChartData()->getSeries()->size();
$s = $chart->getChartData()->getCategories()->size();
# Agrega nuevas series
$chart->getChartData()->getSeries()->add($fact->getCell($defaultWorksheetIndex, 0, 1, "Series 1"), $chart->getType());
$chart->getChartData()->getSeries()->add($fact->getCell($defaultWorksheetIndex, 0, 2, "Series 2"), $chart->getType());
# Agrega nuevas categorías
$chart->getChartData()->getCategories()->add($fact->getCell($defaultWorksheetIndex, 1, 0, "Caetegoty 1"));
$chart->getChartData()->getCategories()->add($fact->getCell($defaultWorksheetIndex, 2, 0, "Caetegoty 2"));
$chart->getChartData()->getCategories()->add($fact->getCell($defaultWorksheetIndex, 3, 0, "Caetegoty 3"));
# Obtiene la primera serie del gráfico
$series = $chart->getChartData()->getSeries()->get_Item(0);
# Ahora llena los datos de la serie
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, 1, 1, 20));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, 2, 1, 50));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, 3, 1, 30));
# Establece el color de relleno para la serie
$series->getFormat()->getFill()->setFillType(FillType::Solid);
$series->getFormat()->getFill()->getSolidFillColor()->setColor(java("java.awt.Color")->RED);
# Obtiene la segunda serie del gráfico
$series = $chart->getChartData()->getSeries()->get_Item(1);
# Rellena los datos de la serie
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, 1, 2, 30));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, 2, 2, 10));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, 3, 2, 60));
# Establece el color de relleno para la serie
$series->getFormat()->getFill()->setFillType(FillType::Solid);
$series->getFormat()->getFill()->getSolidFillColor()->setColor(java("java.awt.Color")->GREEN);
# Crea etiquetas personalizadas para cada categoría de la nueva serie
# Establece la primera etiqueta para mostrar el nombre de la categoría
$lbl = $series->getDataPoints()->get_Item(0)->getLabel();
$lbl->getDataLabelFormat()->setShowCategoryName(true);
$lbl = $series->getDataPoints()->get_Item(1)->getLabel();
$lbl->getDataLabelFormat()->setShowSeriesName(true);
# Muestra el valor para la tercera etiqueta
$lbl = $series->getDataPoints()->get_Item(2)->getLabel();
$lbl->getDataLabelFormat()->setShowValue(true);
$lbl->getDataLabelFormat()->setShowSeriesName(true);
$lbl->getDataLabelFormat()->setSeparator("/");
# Guarda la presentación con el gráfico
$pres->save("output.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Creando gráficos de dispersión
Los gráficos de dispersión (también llamados diagramas de dispersión o gráficos xy) se usan a menudo para buscar patrones o demostrar correlaciones entre dos variables.
Puedes querer usar un gráfico de dispersión cuando
- tienes datos numéricos emparejados
- tienes 2 variables que se relacionan bien entre sí
- quieres determinar si 2 variables están relacionadas
- tienes una variable independiente que tiene múltiples valores para una variable dependiente
Pasos: Crear gráfico de dispersión | Pasos: Crear gráfico de dispersión PowerPoint | Pasos: Crear gráfico de dispersión en presentación PowerPoint
- Sigue los pasos mencionados anteriormente en Creando gráficos normales
- En el tercer paso, añade un gráfico con algunos datos y especifica tu tipo de gráfico como uno de los siguientes
- ChartType::ScatterWithMarkers - Representa un gráfico de dispersión.
- ChartType::ScatterWithSmoothLinesAndMarkers - Representa un gráfico de dispersión conectado por curvas, con marcadores de datos.
- ChartType::ScatterWithSmoothLines - Representa un gráfico de dispersión conectado por curvas, sin marcadores de datos.
- ChartType::ScatterWithStraightLinesAndMarkers - Representa un gráfico de dispersión conectado por líneas, con marcadores de datos.
- ChartType::ScatterWithStraightLines - Representa un gráfico de dispersión conectado por líneas, sin marcadores de datos.
Este código PHP muestra cómo crear gráficos de dispersión con diferentes series de marcadores:
# Instancia una clase de presentación que representa un archivo PPTX
$pres = new Presentation();
try {
# Accede a la primera diapositiva
$slide = $pres->getSlides()->get_Item(0);
# Crea el gráfico predeterminado
$chart = $slide->getShapes()->addChart(ChartType::ScatterWithSmoothLines, 0, 0, 400, 400);
# Obtiene el índice de la hoja de datos del gráfico predeterminado
$defaultWorksheetIndex = 0;
# Obtiene la hoja de datos del gráfico
$fact = $chart->getChartData()->getChartDataWorkbook();
# Elimina la serie de demostración
$chart->getChartData()->getSeries()->clear();
# Agrega nuevas series
$chart->getChartData()->getSeries()->add($fact->getCell($defaultWorksheetIndex, 1, 1, "Series 1"), $chart->getType());
$chart->getChartData()->getSeries()->add($fact->getCell($defaultWorksheetIndex, 1, 3, "Series 2"), $chart->getType());
# Toma la primera serie del gráfico
$series = $chart->getChartData()->getSeries()->get_Item(0);
# Agrega un nuevo punto (1:3) a la serie
$series->getDataPoints()->addDataPointForScatterSeries($fact->getCell($defaultWorksheetIndex, 2, 1, 1), $fact->getCell($defaultWorksheetIndex, 2, 2, 3));
# Agrega un nuevo punto (2:10)
$series->getDataPoints()->addDataPointForScatterSeries($fact->getCell($defaultWorksheetIndex, 3, 1, 2), $fact->getCell($defaultWorksheetIndex, 3, 2, 10));
# Cambia el tipo de la serie
$series->setType(ChartType::ScatterWithStraightLinesAndMarkers);
# Cambia el marcador de la serie del gráfico
$series->getMarker()->setSize(10);
$series->getMarker()->setSymbol(MarkerStyleType::Star);
# Toma la segunda serie del gráfico
$series = $chart->getChartData()->getSeries()->get_Item(1);
# Agrega un nuevo punto (5:2) allí
$series->getDataPoints()->addDataPointForScatterSeries($fact->getCell($defaultWorksheetIndex, 2, 3, 5), $fact->getCell($defaultWorksheetIndex, 2, 4, 2));
# Agrega un nuevo punto (3:1)
$series->getDataPoints()->addDataPointForScatterSeries($fact->getCell($defaultWorksheetIndex, 3, 3, 3), $fact->getCell($defaultWorksheetIndex, 3, 4, 1));
# Agrega un nuevo punto (2:2)
$series->getDataPoints()->addDataPointForScatterSeries($fact->getCell($defaultWorksheetIndex, 4, 3, 2), $fact->getCell($defaultWorksheetIndex, 4, 4, 2));
# Agrega un nuevo punto (5:1)
$series->getDataPoints()->addDataPointForScatterSeries($fact->getCell($defaultWorksheetIndex, 5, 3, 5), $fact->getCell($defaultWorksheetIndex, 5, 4, 1));
# Cambia el marcador de la serie del gráfico
$series->getMarker()->setSize(10);
$series->getMarker()->setSymbol(MarkerStyleType::Circle);
$pres->save("AsposeChart_out.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Creando gráficos circulares
Los gráficos circulares se usan mejor para mostrar la relación parte‑todo en los datos, especialmente cuando los datos contienen etiquetas categóricas con valores numéricos. Sin embargo, si tus datos contienen muchas partes o etiquetas, quizá prefieras usar un gráfico de barras.
Pasos: Crear gráfico circular | Pasos: Crear gráfico circular PowerPoint | Pasos: Crear gráfico circular en presentación PowerPoint
- Crear una instancia de la clase Presentation.
- Obtener la referencia de una diapositiva mediante su índice.
- Añadir un gráfico con datos predeterminados y el tipo deseado (en este caso, ChartType.Pie).
- Acceder a los datos del gráfico a través de IChartDataWorkbook.
- Borrar las series y categorías predeterminadas.
- Añadir nuevas series y categorías.
- Añadir nuevos datos de gráfico para las series.
- Añadir nuevos puntos para los gráficos y colores personalizados para los sectores del círculo.
- Establecer etiquetas para las series.
- Establecer líneas guía para las etiquetas de series.
- Establecer el ángulo de rotación para las diapositivas del gráfico circular.
- Guardar la presentación modificada en un archivo PPTX.
Este código PHP muestra cómo crear un gráfico circular:
# Instancia una clase de presentación que representa un archivo PPTX
$pres = new Presentation();
try {
# Accede a la primera diapositiva
$slides = $pres->getSlides()->get_Item(0);
# Agrega un gráfico con datos predeterminados
$chart = $slides->getShapes()->addChart(ChartType::Pie, 100, 100, 400, 400);
# Establece el título del gráfico
$chart->getChartTitle()->addTextFrameForOverriding("Sample Title");
$chart->getChartTitle()->getTextFrameForOverriding()->getTextFrameFormat()->setCenterText(NullableBool::True);
$chart->getChartTitle()->setHeight(20);
$chart->setTitle(true);
# Establece la primera serie para mostrar valores
$chart->getChartData()->getSeries()->get_Item(0)->getLabels()->getDefaultDataLabelFormat()->setShowValue(true);
# Establece el índice para la hoja de datos del gráfico
$defaultWorksheetIndex = 0;
# Obtiene la hoja de datos del gráfico
$fact = $chart->getChartData()->getChartDataWorkbook();
# Elimina las series y categorías generadas por defecto
$chart->getChartData()->getSeries()->clear();
$chart->getChartData()->getCategories()->clear();
# Agrega nuevas categorías
$chart->getChartData()->getCategories()->add($fact->getCell(0, 1, 0, "First Qtr"));
$chart->getChartData()->getCategories()->add($fact->getCell(0, 2, 0, "2nd Qtr"));
$chart->getChartData()->getCategories()->add($fact->getCell(0, 3, 0, "3rd Qtr"));
# Agrega nuevas series
$series = $chart->getChartData()->getSeries()->add($fact->getCell(0, 0, 1, "Series 1"), $chart->getType());
# Llena los datos de la serie
$series->getDataPoints()->addDataPointForPieSeries($fact->getCell($defaultWorksheetIndex, 1, 1, 20));
$series->getDataPoints()->addDataPointForPieSeries($fact->getCell($defaultWorksheetIndex, 2, 1, 50));
$series->getDataPoints()->addDataPointForPieSeries($fact->getCell($defaultWorksheetIndex, 3, 1, 30));
# No funciona en la nueva versión
# Agregando nuevos puntos y estableciendo el color del sector
# series.IsColorVaried = true;
$chart->getChartData()->getSeriesGroups()->get_Item(0)->setColorVaried(true);
$point = $series->getDataPoints()->get_Item(0);
$point->getFormat()->getFill()->setFillType(FillType::Solid);
$point->getFormat()->getFill()->getSolidFillColor()->setColor(java("java.awt.Color")->CYAN);
# Establece el borde del sector
$point->getFormat()->getLine()->getFillFormat()->setFillType(FillType::Solid);
$point->getFormat()->getLine()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->GRAY);
$point->getFormat()->getLine()->setWidth(3.0);
$point->getFormat()->getLine()->setStyle(LineStyle->ThinThick);
$point->getFormat()->getLine()->setDashStyle(LineDashStyle->DashDot);
$point1 = $series->getDataPoints()->get_Item(1);
$point1->getFormat()->getFill()->setFillType(FillType::Solid);
$point1->getFormat()->getFill()->getSolidFillColor()->setColor(java("java.awt.Color")->ORANGE);
# Establece el borde del sector
$point1->getFormat()->getLine()->getFillFormat()->setFillType(FillType::Solid);
$point1->getFormat()->getLine()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->BLUE);
$point1->getFormat()->getLine()->setWidth(3.0);
$point1->getFormat()->getLine()->setStyle(LineStyle->Single);
$point1->getFormat()->getLine()->setDashStyle(LineDashStyle->LargeDashDot);
$point2 = $series->getDataPoints()->get_Item(2);
$point2->getFormat()->getFill()->setFillType(FillType::Solid);
$point2->getFormat()->getFill()->getSolidFillColor()->setColor(java("java.awt.Color")->YELLOW);
# Establece el borde del sector
$point2->getFormat()->getLine()->getFillFormat()->setFillType(FillType::Solid);
$point2->getFormat()->getLine()->getFillFormat()->getSolidFillColor()->setColor(java("java.awt.Color")->RED);
$point2->getFormat()->getLine()->setWidth(2.0);
$point2->getFormat()->getLine()->setStyle(LineStyle->ThinThin);
$point2->getFormat()->getLine()->setDashStyle(LineDashStyle->LargeDashDotDot);
# Crea etiquetas personalizadas para cada categoría de la nueva serie
$lbl1 = $series->getDataPoints()->get_Item(0)->getLabel();
# lbl.ShowCategoryName = true;
$lbl1->getDataLabelFormat()->setShowValue(true);
$lbl2 = $series->getDataPoints()->get_Item(1)->getLabel();
$lbl2->getDataLabelFormat()->setShowValue(true);
$lbl2->getDataLabelFormat()->setShowLegendKey(true);
$lbl2->getDataLabelFormat()->setShowPercentage(true);
$lbl3 = $series->getDataPoints()->get_Item(2)->getLabel();
$lbl3->getDataLabelFormat()->setShowSeriesName(true);
$lbl3->getDataLabelFormat()->setShowPercentage(true);
# Muestra líneas guía para el gráfico
$series->getLabels()->getDefaultDataLabelFormat()->setShowLeaderLines(true);
# Establece el ángulo de rotación para los sectores del gráfico circular
$chart->getChartData()->getSeriesGroups()->get_Item(0)->setFirstSliceAngle(180);
# Guarda la presentación con un gráfico
$pres->save("PieChart_out.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Creando gráficos de líneas
Los gráficos de líneas (también conocidos como diagramas de líneas) se usan mejor cuando deseas demostrar cambios en el valor a lo largo del tiempo. Con un gráfico de líneas, puedes comparar muchos datos a la vez, seguir cambios y tendencias en el tiempo, resaltar anomalías en series de datos, etc.
- Crear una instancia de la clase Presentation.
- Obtener la referencia de una diapositiva mediante su índice.
- Añadir un gráfico con datos predeterminados y el tipo deseado (en este caso,
ChartType::Line). - Acceder a los datos del gráfico mediante IChartDataWorkbook.
- Borrar las series y categorías predeterminadas.
- Añadir nuevas series y categorías.
- Añadir nuevos datos de gráfico para las series.
- Guardar la presentación modificada en un archivo PPTX.
Este código PHP muestra cómo crear un gráfico de líneas:
$pres = new Presentation();
try {
$lineChart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::Line, 10, 50, 600, 350);
$pres->save("lineChart.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Por defecto, los puntos en un gráfico de líneas están unidos por líneas rectas continuas. Si deseas que los puntos se unan mediante guiones, puedes especificar tu tipo de guion preferido de esta manera:
$lineChart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::Line, 10, 50, 600, 350);
foreach($lineChart->getChartData()->getSeries() as $series) {
$series->getFormat()->getLine()->setDashStyle(LineDashStyle->Dash);
}
Creando gráficos de mapa de árbol
Los gráficos de mapa de árbol se usan mejor para datos de ventas cuando deseas mostrar el tamaño relativo de categorías de datos y, al mismo tiempo, llamar rápidamente la atención sobre los ítems que son grandes contribuyentes a cada categoría.
Pasos: Crear gráfico de mapa de árbol | Pasos: Crear gráfico de mapa de árbol PowerPoint | Pasos: Crear gráfico de mapa de árbol en presentación PowerPoint
- Crear una instancia de la clase Presentation.
- Obtener la referencia de una diapositiva mediante su índice.
- Añadir un gráfico con datos predeterminados y el tipo deseado (en este caso, ChartType.TreeMap).
- Acceder a los datos del gráfico a través de IChartDataWorkbook.
- Borrar las series y categorías predeterminadas.
- Añadir nuevas series y categorías.
- Añadir nuevos datos de gráfico para las series.
- Guardar la presentación modificada en un archivo PPTX.
Este código PHP muestra cómo crear un gráfico de mapa de árbol:
$pres = new Presentation();
try {
$chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::Treemap, 50, 50, 500, 400);
$chart->getChartData()->getCategories()->clear();
$chart->getChartData()->getSeries()->clear();
$wb = $chart->getChartData()->getChartDataWorkbook();
$wb->clear(0);
# rama 1
$leaf = $chart->getChartData()->getCategories()->add($wb->getCell(0, "C1", "Leaf1"));
$leaf->getGroupingLevels()->setGroupingItem(1, "Stem1");
$leaf->getGroupingLevels()->setGroupingItem(2, "Branch1");
$chart->getChartData()->getCategories()->add($wb->getCell(0, "C2", "Leaf2"));
$leaf = $chart->getChartData()->getCategories()->add($wb->getCell(0, "C3", "Leaf3"));
$leaf->getGroupingLevels()->setGroupingItem(1, "Stem2");
$chart->getChartData()->getCategories()->add($wb->getCell(0, "C4", "Leaf4"));
# rama 2
$leaf = $chart->getChartData()->getCategories()->add($wb->getCell(0, "C5", "Leaf5"));
$leaf->getGroupingLevels()->setGroupingItem(1, "Stem3");
$leaf->getGroupingLevels()->setGroupingItem(2, "Branch2");
$chart->getChartData()->getCategories()->add($wb->getCell(0, "C6", "Leaf6"));
$leaf = $chart->getChartData()->getCategories()->add($wb->getCell(0, "C7", "Leaf7"));
$leaf->getGroupingLevels()->setGroupingItem(1, "Stem4");
$chart->getChartData()->getCategories()->add($wb->getCell(0, "C8", "Leaf8"));
$series = $chart->getChartData()->getSeries()->add(ChartType::Treemap);
$series->getLabels()->getDefaultDataLabelFormat()->setShowCategoryName(true);
$series->getDataPoints()->addDataPointForTreemapSeries($wb->getCell(0, "D1", 4));
$series->getDataPoints()->addDataPointForTreemapSeries($wb->getCell(0, "D2", 5));
$series->getDataPoints()->addDataPointForTreemapSeries($wb->getCell(0, "D3", 3));
$series->getDataPoints()->addDataPointForTreemapSeries($wb->getCell(0, "D4", 6));
$series->getDataPoints()->addDataPointForTreemapSeries($wb->getCell(0, "D5", 9));
$series->getDataPoints()->addDataPointForTreemapSeries($wb->getCell(0, "D6", 9));
$series->getDataPoints()->addDataPointForTreemapSeries($wb->getCell(0, "D7", 4));
$series->getDataPoints()->addDataPointForTreemapSeries($wb->getCell(0, "D8", 3));
$series->setParentLabelLayout(ParentLabelLayoutType::Overlapping);
$pres->save("Treemap.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Creando gráficos de acciones
Pasos: Crear gráfico de acciones | Pasos: Crear gráfico de acciones PowerPoint | Pasos: Crear gráfico de acciones en presentación PowerPoint
- Crear una instancia de la clase Presentation.
- Obtener la referencia de una diapositiva mediante su índice.
- Añadir un gráfico con datos predeterminados y el tipo deseado (ChartType.OpenHighLowClose).
- Acceder a los datos del gráfico mediante IChartDataWorkbook.
- Borrar las series y categorías predeterminadas.
- Añadir nuevas series y categorías.
- Añadir nuevos datos de gráfico para las series.
- Especificar el formato de HiLowLines.
- Guardar la presentación modificada en un archivo PPTX.
Ejemplo de código PHP usado para crear un gráfico de acciones:
$pres = new Presentation();
try {
$chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::OpenHighLowClose, 50, 50, 600, 400, false);
$chart->getChartData()->getSeries()->clear();
$chart->getChartData()->getCategories()->clear();
$wb = $chart->getChartData()->getChartDataWorkbook();
$chart->getChartData()->getCategories()->add($wb->getCell(0, 1, 0, "A"));
$chart->getChartData()->getCategories()->add($wb->getCell(0, 2, 0, "B"));
$chart->getChartData()->getCategories()->add($wb->getCell(0, 3, 0, "C"));
$chart->getChartData()->getSeries()->add($wb->getCell(0, 0, 1, "Open"), $chart->getType());
$chart->getChartData()->getSeries()->add($wb->getCell(0, 0, 2, "High"), $chart->getType());
$chart->getChartData()->getSeries()->add($wb->getCell(0, 0, 3, "Low"), $chart->getType());
$chart->getChartData()->getSeries()->add($wb->getCell(0, 0, 4, "Close"), $chart->getType());
$series = $chart->getChartData()->getSeries()->get_Item(0);
$series->getDataPoints()->addDataPointForStockSeries($wb->getCell(0, 1, 1, 72));
$series->getDataPoints()->addDataPointForStockSeries($wb->getCell(0, 2, 1, 25));
$series->getDataPoints()->addDataPointForStockSeries($wb->getCell(0, 3, 1, 38));
$series = $chart->getChartData()->getSeries()->get_Item(1);
$series->getDataPoints()->addDataPointForStockSeries($wb->getCell(0, 1, 2, 172));
$series->getDataPoints()->addDataPointForStockSeries($wb->getCell(0, 2, 2, 57));
$series->getDataPoints()->addDataPointForStockSeries($wb->getCell(0, 3, 2, 57));
$series = $chart->getChartData()->getSeries()->get_Item(2);
$series->getDataPoints()->addDataPointForStockSeries($wb->getCell(0, 1, 3, 12));
$series->getDataPoints()->addDataPointForStockSeries($wb->getCell(0, 2, 3, 12));
$series->getDataPoints()->addDataPointForStockSeries($wb->getCell(0, 3, 3, 13));
$series = $chart->getChartData()->getSeries()->get_Item(3);
$series->getDataPoints()->addDataPointForStockSeries($wb->getCell(0, 1, 4, 25));
$series->getDataPoints()->addDataPointForStockSeries($wb->getCell(0, 2, 4, 38));
$series->getDataPoints()->addDataPointForStockSeries($wb->getCell(0, 3, 4, 50));
$chart->getChartData()->getSeriesGroups()->get_Item(0)->getUpDownBars()->setUpDownBars(true);
$chart->getChartData()->getSeriesGroups()->get_Item(0)->getHiLowLinesFormat()->getLine()->getFillFormat()->setFillType(FillType::Solid);
foreach($chart->getChartData()->getSeries() as $ser) {
$ser->getFormat()->getLine()->getFillFormat()->setFillType(FillType::NoFill);
}
$pres->save("output.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Creando gráficos de caja y bigotes
Pasos: Crear gráfico de caja y bigotes | Pasos: Crear gráfico de caja y bigotes PowerPoint | Pasos: Crear gráfico de caja y bigotes en presentación PowerPoint
- Crear una instancia de la clase Presentation.
- Obtener la referencia de una diapositiva mediante su índice.
- Añadir un gráfico con datos predeterminados y el tipo deseado (ChartType.BoxAndWhisker).
- Acceder a los datos del gráfico mediante IChartDataWorkbook.
- Borrar las series y categorías predeterminadas.
- Añadir nuevas series y categorías.
- Añadir nuevos datos de gráfico para las series.
- Guardar la presentación modificada en un archivo PPTX.
Este código PHP muestra cómo crear un gráfico de caja y bigotes:
$pres = new Presentation();
try {
$chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::BoxAndWhisker, 50, 50, 500, 400);
$chart->getChartData()->getCategories()->clear();
$chart->getChartData()->getSeries()->clear();
$wb = $chart->getChartData()->getChartDataWorkbook();
$wb->clear(0);
$chart->getChartData()->getCategories()->add($wb->getCell(0, "A1", "Category 1"));
$chart->getChartData()->getCategories()->add($wb->getCell(0, "A2", "Category 1"));
$chart->getChartData()->getCategories()->add($wb->getCell(0, "A3", "Category 1"));
$chart->getChartData()->getCategories()->add($wb->getCell(0, "A4", "Category 1"));
$chart->getChartData()->getCategories()->add($wb->getCell(0, "A5", "Category 1"));
$chart->getChartData()->getCategories()->add($wb->getCell(0, "A6", "Category 1"));
$series = $chart->getChartData()->getSeries()->add(ChartType::BoxAndWhisker);
$series->setQuartileMethod(QuartileMethodType::Exclusive);
$series->setShowMeanLine(true);
$series->setShowMeanMarkers(true);
$series->setShowInnerPoints(true);
$series->setShowOutlierPoints(true);
$series->getDataPoints()->addDataPointForBoxAndWhiskerSeries($wb->getCell(0, "B1", 15));
$series->getDataPoints()->addDataPointForBoxAndWhiskerSeries($wb->getCell(0, "B2", 41));
$series->getDataPoints()->addDataPointForBoxAndWhiskerSeries($wb->getCell(0, "B3", 16));
$series->getDataPoints()->addDataPointForBoxAndWhiskerSeries($wb->getCell(0, "B4", 10));
$series->getDataPoints()->addDataPointForBoxAndWhiskerSeries($wb->getCell(0, "B5", 23));
$series->getDataPoints()->addDataPointForBoxAndWhiskerSeries($wb->getCell(0, "B6", 16));
$pres->save("BoxAndWhisker.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Creando gráficos de embudo
Pasos: Crear gráfico de embudo | Pasos: Crear gráfico de embudo PowerPoint | Pasos: Crear gráfico de embudo en presentación PowerPoint
- Crear una instancia de la clase Presentation.
- Obtener la referencia de una diapositiva mediante su índice.
- Añadir un gráfico con datos predeterminados y el tipo deseado (ChartType.Funnel).
- Guardar la presentación modificada en un archivo PPTX.
El código PHP muestra cómo crear un gráfico de embudo:
$pres = new Presentation();
try {
$chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::Funnel, 50, 50, 500, 400);
$chart->getChartData()->getCategories()->clear();
$chart->getChartData()->getSeries()->clear();
$wb = $chart->getChartData()->getChartDataWorkbook();
$wb->clear(0);
$chart->getChartData()->getCategories()->add($wb->getCell(0, "A1", "Category 1"));
$chart->getChartData()->getCategories()->add($wb->getCell(0, "A2", "Category 2"));
$chart->getChartData()->getCategories()->add($wb->getCell(0, "A3", "Category 3"));
$chart->getChartData()->getCategories()->add($wb->getCell(0, "A4", "Category 4"));
$chart->getChartData()->getCategories()->add($wb->getCell(0, "A5", "Category 5"));
$chart->getChartData()->getCategories()->add($wb->getCell(0, "A6", "Category 6"));
$series = $chart->getChartData()->getSeries()->add(ChartType::Funnel);
$series->getDataPoints()->addDataPointForFunnelSeries($wb->getCell(0, "B1", 50));
$series->getDataPoints()->addDataPointForFunnelSeries($wb->getCell(0, "B2", 100));
$series->getDataPoints()->addDataPointForFunnelSeries($wb->getCell(0, "B3", 200));
$series->getDataPoints()->addDataPointForFunnelSeries($wb->getCell(0, "B4", 300));
$series->getDataPoints()->addDataPointForFunnelSeries($wb->getCell(0, "B5", 400));
$series->getDataPoints()->addDataPointForFunnelSeries($wb->getCell(0, "B6", 500));
$pres->save("Funnel.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Creando gráficos ráfaga solar
Pasos: Crear gráfico ráfaga solar | Pasos: Crear gráfico ráfaga solar PowerPoint | Pasos: Crear gráfico ráfaga solar en presentación PowerPoint
- Crear una instancia de la clase Presentation.
- Obtener la referencia de una diapositiva mediante su índice.
- Añadir un gráfico con datos predeterminados y el tipo deseado (en este caso, ChartType.sunburst).
- Guardar la presentación modificada en un archivo PPTX.
Este código PHP muestra cómo crear un gráfico ráfaga solar:
$pres = new Presentation();
try {
$chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::Sunburst, 50, 50, 500, 400);
$chart->getChartData()->getCategories()->clear();
$chart->getChartData()->getSeries()->clear();
$wb = $chart->getChartData()->getChartDataWorkbook();
$wb->clear(0);
# rama 1
$leaf = $chart->getChartData()->getCategories()->add($wb->getCell(0, "C1", "Leaf1"));
$leaf->getGroupingLevels()->setGroupingItem(1, "Stem1");
$leaf->getGroupingLevels()->setGroupingItem(2, "Branch1");
$chart->getChartData()->getCategories()->add($wb->getCell(0, "C2", "Leaf2"));
$leaf = $chart->getChartData()->getCategories()->add($wb->getCell(0, "C3", "Leaf3"));
$leaf->getGroupingLevels()->setGroupingItem(1, "Stem2");
$chart->getChartData()->getCategories()->add($wb->getCell(0, "C4", "Leaf4"));
# rama 2
$leaf = $chart->getChartData()->getCategories()->add($wb->getCell(0, "C5", "Leaf5"));
$leaf->getGroupingLevels()->setGroupingItem(1, "Stem3");
$leaf->getGroupingLevels()->setGroupingItem(2, "Branch2");
$chart->getChartData()->getCategories()->add($wb->getCell(0, "C6", "Leaf6"));
$leaf = $chart->getChartData()->getCategories()->add($wb->getCell(0, "C7", "Leaf7"));
$leaf->getGroupingLevels()->setGroupingItem(1, "Stem4");
$chart->getChartData()->getCategories()->add($wb->getCell(0, "C8", "Leaf8"));
$series = $chart->getChartData()->getSeries()->add(ChartType::Sunburst);
$series->getLabels()->getDefaultDataLabelFormat()->setShowCategoryName(true);
$series->getDataPoints()->addDataPointForSunburstSeries($wb->getCell(0, "D1", 4));
$series->getDataPoints()->addDataPointForSunburstSeries($wb->getCell(0, "D2", 5));
$series->getDataPoints()->addDataPointForSunburstSeries($wb->getCell(0, "D3", 3));
$series->getDataPoints()->addDataPointForSunburstSeries($wb->getCell(0, "D4", 6));
$series->getDataPoints()->addDataPointForSunburstSeries($wb->getCell(0, "D5", 9));
$series->getDataPoints()->addDataPointForSunburstSeries($wb->getCell(0, "D6", 9));
$series->getDataPoints()->addDataPointForSunburstSeries($wb->getCell(0, "D7", 4));
$series->getDataPoints()->addDataPointForSunburstSeries($wb->getCell(0, "D8", 3));
$pres->save("Sunburst.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Creando histogramas
Pasos: Crear histograma | Pasos: Crear histograma PowerPoint | Pasos: Crear histograma en presentación PowerPoint
- Crear una instancia de la clase Presentation.
- Obtener la referencia de una diapositiva mediante su índice.
- Añadir un gráfico con datos predeterminados y el tipo deseado (ChartType.Histogram).
- Acceder a los datos del gráfico mediante IChartDataWorkbook.
- Borrar las series y categorías predeterminadas.
- Añadir nuevas series y categorías.
- Guardar la presentación modificada en un archivo PPTX.
Este código PHP muestra cómo crear un histograma:
$pres = new Presentation();
$chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::Histogram, 50, 50, 500, 400);
$chart->getChartData()->getCategories()->clear();
$chart->getChartData()->getSeries()->clear();
$wb = $chart->getChartData()->getChartDataWorkbook();
$wb->clear(0);
$series = $chart->getChartData()->getSeries()->add(ChartType::Histogram);
$series->getDataPoints()->addDataPointForHistogramSeries($wb->getCell(0, "A1", 15));
$series->getDataPoints()->addDataPointForHistogramSeries($wb->getCell(0, "A2", -41));
$series->getDataPoints()->addDataPointForHistogramSeries($wb->getCell(0, "A3", 16));
$series->getDataPoints()->addDataPointForHistogramSeries($wb->getCell(0, "A4", 10));
$series->getDataPoints()->addDataPointForHistogramSeries($wb->getCell(0, "A5", -23));
$series->getDataPoints()->addDataPointForHistogramSeries($wb->getCell(0, "A6", 16));
$chart->getAxes()->getHorizontalAxis()->setAggregationType(AxisAggregationType::Automatic);
Creando gráficos de radar
Pasos: Crear radar | Pasos: Crear radar PowerPoint | Pasos: Crear radar en presentación PowerPoint
- Crear una instancia de la clase Presentation.
- Obtener la referencia de una diapositiva mediante su índice.
- Añadir un gráfico con algunos datos y especificar tu tipo de gráfico preferido (
ChartType::Radaren este caso). - Guardar la presentación modificada en un archivo PPTX.
Este código PHP muestra cómo crear un radar:
$pres = new Presentation();
try {
$pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::Radar, 20, 20, 400, 300);
$pres->save("Radar-chart.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Creando gráficos multicategoría
Pasos: Crear multicategoría | Pasos: Crear multicategoría PowerPoint | Pasos: Crear multicategoría en presentación PowerPoint
- Crear una instancia de la clase Presentation.
- Obtener la referencia de una diapositiva mediante su índice.
- Añadir un gráfico con datos predeterminados y el tipo deseado (ChartType.ClusteredColumn).
- Acceder a los datos del gráfico mediante IChartDataWorkbook.
- Borrar las series y categorías predeterminadas.
- Añadir nuevas series y categorías.
- Añadir nuevos datos de gráfico para las series.
- Guardar la presentación modificada en un archivo PPTX.
Este código PHP muestra cómo crear un gráfico multicategoría:
$pres = new Presentation();
try {
$ch = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::ClusteredColumn, 100, 100, 600, 450);
$ch->getChartData()->getSeries()->clear();
$ch->getChartData()->getCategories()->clear();
$fact = $ch->getChartData()->getChartDataWorkbook();
$fact->clear(0);
$defaultWorksheetIndex = 0;
$category = $ch->getChartData()->getCategories()->add($fact->getCell(0, "c2", "A"));
$category->getGroupingLevels()->setGroupingItem(1, "Group1");
$category = $ch->getChartData()->getCategories()->add($fact->getCell(0, "c3", "B"));
$category = $ch->getChartData()->getCategories()->add($fact->getCell(0, "c4", "C"));
$category->getGroupingLevels()->setGroupingItem(1, "Group2");
$category = $ch->getChartData()->getCategories()->add($fact->getCell(0, "c5", "D"));
$category = $ch->getChartData()->getCategories()->add($fact->getCell(0, "c6", "E"));
$category->getGroupingLevels()->setGroupingItem(1, "Group3");
$category = $ch->getChartData()->getCategories()->add($fact->getCell(0, "c7", "F"));
$category = $ch->getChartData()->getCategories()->add($fact->getCell(0, "c8", "G"));
$category->getGroupingLevels()->setGroupingItem(1, "Group4");
$category = $ch->getChartData()->getCategories()->add($fact->getCell(0, "c9", "H"));
# Agregando series
$series = $ch->getChartData()->getSeries()->add($fact->getCell(0, "D1", "Series 1"), ChartType::ClusteredColumn);
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, "D2", 10));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, "D3", 20));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, "D4", 30));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, "D5", 40));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, "D6", 50));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, "D7", 60));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, "D8", 70));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, "D9", 80));
# Guardar presentación con gráfico
$pres->save("AsposeChart_out.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Creando gráficos de mapa
Un gráfico de mapa es una visualización de un área que contiene datos. Los gráficos de mapa se usan mejor para comparar datos o valores entre regiones geográficas.
Pasos: Crear mapa | Pasos: Crear mapa PowerPoint | Pasos: Crear mapa en presentación PowerPoint
Este código PHP muestra cómo crear un gráfico de mapa:
$pres = new Presentation();
try {
$chart = $pres->getSlides()->get_Item(0)->getShapes()->addChart(ChartType::Map, 50, 50, 500, 400);
$pres->save("mapChart.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Creando gráficos combinados
Un gráfico combinado (o combo) combina dos o más tipos de gráficos en un solo diagrama. Este gráfico permite resaltar, comparar o examinar diferencias entre dos o más conjuntos de datos, ayudándote a identificar relaciones entre ellos.

El siguiente código PHP muestra cómo crear el gráfico combinado mostrado arriba en una presentación PowerPoint:
function createComboChart() {
$presentation = new Presentation();
$slide = $presentation->getSlides()->get_Item(0);
try {
$chart = createChartWithFirstSeries($slide);
addSecondSeriesToChart($chart);
addThirdSeriesToChart($chart);
setPrimaryAxesFormat($chart);
setSecondaryAxesFormat($chart);
$presentation->save("combo-chart.pptx", SaveFormat::Pptx);
} finally {
$presentation->dispose();
}
}
function createChartWithFirstSeries($slide) {
$chart = $slide->getShapes()->addChart(ChartType::ClusteredColumn, 50, 50, 600, 400);
// Establecer el título del gráfico.
$chart->setTitle(true);
$chart->getChartTitle()->addTextFrameForOverriding("Chart Title");
$chart->getChartTitle()->setOverlay(false);
$titleParagraph = $chart->getChartTitle()->getTextFrameForOverriding()->getParagraphs()->get_Item(0);
$titleFormat = $titleParagraph->getParagraphFormat()->getDefaultPortionFormat();
$titleFormat->setFontBold(NullableBool::False);
$titleFormat->setFontHeight(18);
// Establecer la leyenda del gráfico.
$chart->getLegend()->setPosition(LegendPositionType::Bottom);
$chart->getLegend()->getTextFormat()->getPortionFormat()->setFontHeight(12);
// Eliminar las series y categorías generadas por defecto.
$chart->getChartData()->getSeries()->clear();
$chart->getChartData()->getCategories()->clear();
$worksheetIndex = 0;
$workbook = $chart->getChartData()->getChartDataWorkbook();
// Agregar nuevas categorías.
$chart->getChartData()->getCategories()->add($workbook->getCell($worksheetIndex, 1, 0, "Category 1"));
$chart->getChartData()->getCategories()->add($workbook->getCell($worksheetIndex, 2, 0, "Category 2"));
$chart->getChartData()->getCategories()->add($workbook->getCell($worksheetIndex, 3, 0, "Category 3"));
$chart->getChartData()->getCategories()->add($workbook->getCell($worksheetIndex, 4, 0, "Category 4"));
// Añadir la primera serie.
$seriesNameCell = $workbook->getCell($worksheetIndex, 0, 1, "Series 1");
$series = $chart->getChartData()->getSeries()->add($seriesNameCell, $chart->getType());
$series->getParentSeriesGroup()->setOverlap(-25);
$series->getParentSeriesGroup()->setGapWidth(220);
$series->getDataPoints()->addDataPointForBarSeries($workbook->getCell($worksheetIndex, 1, 1, 4.3));
$series->getDataPoints()->addDataPointForBarSeries($workbook->getCell($worksheetIndex, 2, 1, 2.5));
$series->getDataPoints()->addDataPointForBarSeries($workbook->getCell($worksheetIndex, 3, 1, 3.5));
$series->getDataPoints()->addDataPointForBarSeries($workbook->getCell($worksheetIndex, 4, 1, 4.5));
return $chart;
}
function addSecondSeriesToChart($chart) {
$workbook = $chart->getChartData()->getChartDataWorkbook();
$worksheetIndex = 0;
$seriesNameCell = $workbook->getCell($worksheetIndex, 0, 2, "Series 2");
$series = $chart->getChartData()->getSeries()->add($seriesNameCell, ChartType::ClusteredColumn);
$series->getParentSeriesGroup()->setOverlap(-25);
$series->getParentSeriesGroup()->setGapWidth(220);
$series->getDataPoints()->addDataPointForBarSeries($workbook->getCell($worksheetIndex, 1, 2, 2.4));
$series->getDataPoints()->addDataPointForBarSeries($workbook->getCell($worksheetIndex, 2, 2, 4.4));
$series->getDataPoints()->addDataPointForBarSeries($workbook->getCell($worksheetIndex, 3, 2, 1.8));
$series->getDataPoints()->addDataPointForBarSeries($workbook->getCell($worksheetIndex, 4, 2, 2.8));
}
function addThirdSeriesToChart($chart) {
$workbook = $chart->getChartData()->getChartDataWorkbook();
$worksheetIndex = 0;
$seriesNameCell = $workbook->getCell($worksheetIndex, 0, 3, "Series 3");
$series = $chart->getChartData()->getSeries()->add($seriesNameCell, ChartType::Line);
$series->getDataPoints()->addDataPointForLineSeries($workbook->getCell($worksheetIndex, 1, 3, 2.0));
$series->getDataPoints()->addDataPointForLineSeries($workbook->getCell($worksheetIndex, 2, 3, 2.0));
$series->getDataPoints()->addDataPointForLineSeries($workbook->getCell($worksheetIndex, 3, 3, 3.0));
$series->getDataPoints()->addDataPointForLineSeries($workbook->getCell($worksheetIndex, 4, 3, 5.0));
$series->setPlotOnSecondAxis(true);
}
function setPrimaryAxesFormat($chart) {
// Establecer el eje horizontal.
$horizontalAxis = $chart->getAxes()->getHorizontalAxis();
$horizontalAxis->getTextFormat()->getPortionFormat()->setFontHeight(12);
$horizontalAxis->getFormat()->getLine()->getFillFormat()->setFillType(FillType::NoFill);
setAxisTitle($horizontalAxis, "X Axis");
// Establecer el eje vertical.
$verticalAxis = $chart->getAxes()->getVerticalAxis();
$verticalAxis->getTextFormat()->getPortionFormat()->setFontHeight(12);
$verticalAxis->getFormat()->getLine()->getFillFormat()->setFillType(FillType::NoFill);
setAxisTitle($verticalAxis, "Y Axis 1");
// Establecer el color de las líneas de cuadrícula principales verticales.
$majorGridLinesFormat = $verticalAxis->getMajorGridLinesFormat()->getLine()->getFillFormat();
$majorGridLinesFormat->setFillType(FillType::Solid);
$majorGridLinesFormat->getSolidFillColor()->setColor(new java("java.awt.Color", 217, 217, 217));
}
function setSecondaryAxesFormat($chart) {
// Establecer el eje horizontal secundario.
$secondaryHorizontalAxis = $chart->getAxes()->getSecondaryHorizontalAxis();
$secondaryHorizontalAxis->setPosition(AxisPositionType::Bottom);
$secondaryHorizontalAxis->setCrossType(CrossesType::Maximum);
$secondaryHorizontalAxis->setVisible(false);
$secondaryHorizontalAxis->getMajorGridLinesFormat()->getLine()->getFillFormat()->setFillType(FillType::NoFill);
$secondaryHorizontalAxis->getMinorGridLinesFormat()->getLine()->getFillFormat()->setFillType(FillType::NoFill);
// Establecer el eje vertical secundario.
$secondaryVerticalAxis = $chart->getAxes()->getSecondaryVerticalAxis();
$secondaryVerticalAxis->setPosition(AxisPositionType::Right);
$secondaryVerticalAxis->getTextFormat()->getPortionFormat()->setFontHeight(12);
$secondaryVerticalAxis->getFormat()->getLine()->getFillFormat()->setFillType(FillType::NoFill);
$secondaryVerticalAxis->getMajorGridLinesFormat()->getLine()->getFillFormat()->setFillType(FillType::NoFill);
$secondaryVerticalAxis->getMinorGridLinesFormat()->getLine()->getFillFormat()->setFillType(FillType::NoFill);
setAxisTitle($secondaryVerticalAxis, "Y Axis 2");
}
function setAxisTitle($axis, $axisTitle) {
$axis->setTitle(true);
$axis->getTitle()->setOverlay(false);
$titleParagraph = $axis->getTitle()->addTextFrameForOverriding($axisTitle)->getParagraphs()->get_Item(0);
$titleFormat = $titleParagraph->getParagraphFormat()->getDefaultPortionFormat();
$titleFormat->setFontBold(NullableBool::False);
$titleFormat->setFontHeight(12);
}
Actualizar gráficos
Pasos: Actualizar gráfico PowerPoint | Pasos: Actualizar gráfico de presentación | Pasos: Actualizar gráfico de presentación PowerPoint
- Instanciar una clase Presentation que represente la presentación que contiene el gráfico que deseas actualizar.
- Obtener la referencia de una diapositiva mediante su índice.
- Recorrer todas las formas para encontrar el gráfico deseado.
- Acceder a la hoja de datos del gráfico.
- Modificar los datos de la serie del gráfico cambiando los valores de la serie.
- Añadir una nueva serie y rellenar los datos correspondientes.
- Guardar la presentación modificada como archivo PPTX.
Este código PHP muestra cómo actualizar un gráfico:
$pres = new Presentation();
try {
# Acceder al primer slideMarker
$sld = $pres->getSlides()->get_Item(0);
# Obtener el gráfico con datos predeterminados
$chart = $sld->getShapes()->get_Item(0);
# Establecer el índice de la hoja de datos del gráfico
$defaultWorksheetIndex = 0;
# Obtener la hoja de datos del gráfico
$fact = $chart->getChartData()->getChartDataWorkbook();
# Cambiar el nombre de la categoría del gráfico
$fact->getCell($defaultWorksheetIndex, 1, 0, "Modified Category 1");
$fact->getCell($defaultWorksheetIndex, 2, 0, "Modified Category 2");
# Tomar la primera serie del gráfico
$series = $chart->getChartData()->getSeries()->get_Item(0);
# Actualizando ahora los datos de la serie
$fact->getCell($defaultWorksheetIndex, 0, 1, "New_Series1");// Modificando el nombre de la serie
$series->getDataPoints()->get_Item(0)->getValue()->setData(90);
$series->getDataPoints()->get_Item(1)->getValue()->setData(123);
$series->getDataPoints()->get_Item(2)->getValue()->setData(44);
# Tomar la segunda serie del gráfico
$series = $chart->getChartData()->getSeries()->get_Item(1);
# Actualizando ahora los datos de la serie
$fact->getCell($defaultWorksheetIndex, 0, 2, "New_Series2");// Modificando el nombre de la serie
$series->getDataPoints()->get_Item(0)->getValue()->setData(23);
$series->getDataPoints()->get_Item(1)->getValue()->setData(67);
$series->getDataPoints()->get_Item(2)->getValue()->setData(99);
# Ahora, agregando una nueva serie
$chart->getChartData()->getSeries()->add($fact->getCell($defaultWorksheetIndex, 0, 3, "Series 3"), $chart->getType());
# Tomar la tercera serie del gráfico
$series = $chart->getChartData()->getSeries()->get_Item(2);
# Ahora poblando datos de la serie
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, 1, 3, 20));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, 2, 3, 50));
$series->getDataPoints()->addDataPointForBarSeries($fact->getCell($defaultWorksheetIndex, 3, 3, 30));
$chart->setType(ChartType::ClusteredCylinder);
# Guardar la presentación con el gráfico
$pres->save("AsposeChartModified_out.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Establecer rango de datos para gráficos
Para establecer el rango de datos de un gráfico, haz lo siguiente:
- Instanciar una clase Presentation que represente la presentación que contiene el gráfico.
- Obtener la referencia de una diapositiva mediante su índice.
- Recorrer todas las formas para encontrar el gráfico deseado.
- Acceder a los datos del gráfico y establecer el rango.
- Guardar la presentación modificada como archivo PPTX.
Este código PHP muestra cómo establecer el rango de datos para un gráfico:
$pres = new Presentation();
try {
$slide = $pres->getSlides()->get_Item(0);
$chart = $slide->getShapes()->get_Item(0);
$chart->getChartData()->setRange("Sheet1!A1:B4");
$pres->save("SetDataRange_out.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Usar marcadores predeterminados en gráficos
Cuando utilizas un marcador predeterminado en los gráficos, cada serie de gráfico obtiene automáticamente diferentes símbolos de marcador predeterminados.
Este código PHP muestra cómo establecer automáticamente un marcador de serie de gráfico:
$pres = new Presentation();
try {
$slide = $pres->getSlides()->get_Item(0);
$chart = $slide->getShapes()->addChart(ChartType::LineWithMarkers, 10, 10, 400, 400);
$chart->getChartData()->getSeries()->clear();
$chart->getChartData()->getCategories()->clear();
$fact = $chart->getChartData()->getChartDataWorkbook();
$chart->getChartData()->getSeries()->add($fact->getCell(0, 0, 1, "Series 1"), $chart->getType());
$series = $chart->getChartData()->getSeries()->get_Item(0);
$chart->getChartData()->getCategories()->add($fact->getCell(0, 1, 0, "C1"));
$series->getDataPoints()->addDataPointForLineSeries($fact->getCell(0, 1, 1, 24));
$chart->getChartData()->getCategories()->add($fact->getCell(0, 2, 0, "C2"));
$series->getDataPoints()->addDataPointForLineSeries($fact->getCell(0, 2, 1, 23));
$chart->getChartData()->getCategories()->add($fact->getCell(0, 3, 0, "C3"));
$series->getDataPoints()->addDataPointForLineSeries($fact->getCell(0, 3, 1, -10));
$chart->getChartData()->getCategories()->add($fact->getCell(0, 4, 0, "C4"));
$series->getDataPoints()->addDataPointForLineSeries($fact->getCell(0, 4, 1, null));
$chart->getChartData()->getSeries()->add($fact->getCell(0, 0, 2, "Series 2"), $chart->getType());
# Tomar la segunda serie del gráfico
$series2 = $chart->getChartData()->getSeries()->get_Item(1);
# Ahora poblando datos de la serie
$series2->getDataPoints()->addDataPointForLineSeries($fact->getCell(0, 1, 2, 30));
$series2->getDataPoints()->addDataPointForLineSeries($fact->getCell(0, 2, 2, 10));
$series2->getDataPoints()->addDataPointForLineSeries($fact->getCell(0, 3, 2, 60));
$series2->getDataPoints()->addDataPointForLineSeries($fact->getCell(0, 4, 2, 40));
$chart->setLegend(true);
$chart->getLegend()->setOverlay(false);
$pres->save("DefaultMarkersInChart.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}