Erstellen oder Aktualisieren von PowerPoint-Präsentationsdiagrammen in PHP
Überblick
Dieser Artikel beschreibt, wie man PowerPoint-Präsentationsdiagramme in Java erstellt. Sie können die Diagramme auch aktualisieren. Folgende Themen werden behandelt.
Diagramm: Normal
- Java PowerPoint-Diagramm erstellen
- Java Präsentationsdiagramm erstellen
- Java PowerPoint-Präsentationsdiagramm erstellen
Diagramm: Gestreut
- Java Gestreutes Diagramm erstellen
- Java PowerPoint-Gestreutes Diagramm erstellen
- Java PowerPoint-Präsentationsgestreutes Diagramm erstellen
Diagramm: Kreis
- Java Kreisdiagramm erstellen
- Java PowerPoint-Kreisdiagramm erstellen
- Java PowerPoint-Präsentationskreisdiagramm erstellen
Diagramm: Baumkarte
- Java Baumkartendiagramm erstellen
- Java PowerPoint-Baumkartendiagramm erstellen
- Java PowerPoint-Präsentationsbaumkartendiagramm erstellen
Diagramm: Aktie
- Java Aktiendiagramm erstellen
- Java PowerPoint-Aktiendiagramm erstellen
- Java PowerPoint-Präsentationsaktiendiagramm erstellen
Diagramm: Box‑ und Whisker
- Java Box‑ und Whisker‑Diagramm erstellen
- Java PowerPoint‑Box‑ und Whisker‑Diagramm erstellen
- Java PowerPoint‑Präsentations‑Box‑ und Whisker‑Diagramm erstellen
Diagramm: Trichter
- Java Trichter‑Diagramm erstellen
- Java PowerPoint‑Trichter‑Diagramm erstellen
- Java PowerPoint‑Präsentations‑Trichter‑Diagramm erstellen
Diagramm: Sonnenstrahl
- Java Sonnenstrahl‑Diagramm erstellen
- Java PowerPoint‑Sonnenstrahl‑Diagramm erstellen
- Java PowerPoint‑Präsentations‑Sonnenstrahl‑Diagramm erstellen
Diagramm: Histogramm
- Java Histogramm‑Diagramm erstellen
- Java PowerPoint‑Histogramm‑Diagramm erstellen
- Java PowerPoint‑Präsentations‑Histogramm‑Diagramm erstellen
Diagramm: Radar
- Java Radar‑Diagramm erstellen
- Java PowerPoint‑Radar‑Diagramm erstellen
- Java PowerPoint‑Präsentations‑Radar‑Diagramm erstellen
Diagramm: Mehrere Kategorien
- Java Mehrkategorien‑Diagramm erstellen
- Java PowerPoint‑Mehrkategorien‑Diagramm erstellen
- Java PowerPoint‑Präsentations‑Mehrkategorien‑Diagramm erstellen
Diagramm: Karte
- Java Kartendiagramm erstellen
- Java PowerPoint‑Kartendiagramm erstellen
- Java PowerPoint‑Präsentations‑Kartendiagramm erstellen
Aktion: Diagramm aktualisieren
- Java PowerPoint‑Diagramm aktualisieren
- Java Präsentations‑Diagramm aktualisieren
- Java PowerPoint‑Präsentations‑Diagramm aktualisieren
Diagramm erstellen
Diagramme helfen, Daten schnell zu visualisieren und Erkenntnisse zu gewinnen, die aus einer Tabelle oder einem Spreadsheet nicht sofort ersichtlich sind.
Warum Diagramme erstellen?
Mit Diagrammen können Sie
- große Datenmengen auf einer einzigen Folie zusammenfassen, kondensieren oder aggregieren
- Muster und Trends in den Daten sichtbar machen
- die Richtung und das Momentum der Daten über die Zeit oder bezogen auf eine bestimmte Maßeinheit ableiten
- Ausreißer, Anomalien, Abweichungen, Fehler oder unsinnige Daten erkennen
- komplexe Daten kommunizieren oder präsentieren
In PowerPoint können Sie Diagramme über die Einfügefunktion erstellen, die Vorlagen für zahlreiche Diagrammtypen bereitstellt. Mit Aspose.Slides können Sie reguläre Diagramme (basierend auf gängigen Diagrammtypen) sowie benutzerdefinierte Diagramme erzeugen.
Normale Diagramme erstellen
Schritte: Diagramm erstellen
- Schritte: PowerPoint‑Diagramm erstellen
- Schritte: Präsentations‑Diagramm erstellen
- Schritte: PowerPoint‑Präsentations‑Diagramm erstellen
Code‑Schritte:
- Erzeugen Sie eine Instanz der Presentation-Klasse.
- Holen Sie sich über den Index die Referenz einer Folie.
- Fügen Sie ein Diagramm mit Daten hinzu und geben Sie den gewünschten Diagrammtyp an.
- Ergänzen Sie dem Diagramm einen Titel.
- Greifen Sie auf das Arbeitsblatt für Diagrammdaten zu.
- Löschen Sie alle voreingestellten Serien und Kategorien.
- Fügen Sie neue Serien und Kategorien hinzu.
- Ergänzen Sie neue Daten für die Diagrammserien.
- Legen Sie eine Füllfarbe für die Serien fest.
- Fügen Sie Beschriftungen für die Serien hinzu.
- Schreiben Sie die geänderte Präsentation als PPTX‑Datei.
Dieser PHP‑Code demonstriert das Erstellen eines normalen Diagramms:
# Instanziert eine Präsentationsklasse, die eine PPTX-Datei darstellt
$pres = new Presentation();
try {
# Greift auf die erste Folie zu
$sld = $pres->getSlides()->get_Item(0);
# Fügt ein Diagramm mit Standarddaten hinzu
$chart = $sld->getShapes()->addChart(ChartType::ClusteredColumn, 0, 0, 500, 500);
# Setzt den Diagrammtitel
$chart->getChartTitle()->addTextFrameForOverriding("Sample Title");
$chart->getChartTitle()->getTextFrameForOverriding()->getTextFrameFormat()->setCenterText(NullableBool::True);
$chart->getChartTitle()->setHeight(20);
$chart->hasTitle();
# Setzt die erste Serie, um Werte anzuzeigen
$chart->getChartData()->getSeries()->get_Item(0)->getLabels()->getDefaultDataLabelFormat()->setShowValue(true);
# Legt den Index für das Diagrammdatenblatt fest
$defaultWorksheetIndex = 0;
# Holt das Diagrammdaten-Arbeitsblatt
$fact = $chart->getChartData()->getChartDataWorkbook();
# Löscht die standardmäßig erzeugten Serien und Kategorien
$chart->getChartData()->getSeries()->clear();
$chart->getChartData()->getCategories()->clear();
$s = $chart->getChartData()->getSeries()->size();
$s = $chart->getChartData()->getCategories()->size();
# Fügt neue Serien hinzu
$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());
# Fügt neue Kategorien hinzu
$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"));
# Nimmt die erste Diagrammserie
$series = $chart->getChartData()->getSeries()->get_Item(0);
# Befüllt jetzt die Seriendaten
$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));
# Setzt die Füllfarbe für die Serie
$series->getFormat()->getFill()->setFillType(FillType::Solid);
$series->getFormat()->getFill()->getSolidFillColor()->setColor(java("java.awt.Color")->RED);
# Nimmt die zweite Diagrammserie
$series = $chart->getChartData()->getSeries()->get_Item(1);
# Befüllt die Seriendaten
$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));
# Setzt die Füllfarbe für die Serie
$series->getFormat()->getFill()->setFillType(FillType::Solid);
$series->getFormat()->getFill()->getSolidFillColor()->setColor(java("java.awt.Color")->GREEN);
# Erstellt benutzerdefinierte Beschriftungen für jede Kategorie der neuen Serie
# Setzt die erste Beschriftung, um den Kategorienamen anzuzeigen
$lbl = $series->getDataPoints()->get_Item(0)->getLabel();
$lbl->getDataLabelFormat()->setShowCategoryName(true);
$lbl = $series->getDataPoints()->get_Item(1)->getLabel();
$lbl->getDataLabelFormat()->setShowSeriesName(true);
# Zeigt den Wert für die dritte Beschriftung an
$lbl = $series->getDataPoints()->get_Item(2)->getLabel();
$lbl->getDataLabelFormat()->setShowValue(true);
$lbl->getDataLabelFormat()->setShowSeriesName(true);
$lbl->getDataLabelFormat()->setSeparator("/");
# Speichert die Präsentation mit Diagramm
$pres->save("output.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Gestreute Diagramme erstellen
Gestreute Diagramme (auch Scatter‑Plots oder X‑Y‑Diagramme genannt) werden häufig verwendet, um Muster zu prüfen oder Korrelationen zwischen zwei Variablen zu verdeutlichen.
Ein gestreutes Diagramm ist sinnvoll, wenn
- Sie gepaarte numerische Daten besitzen
- Sie zwei gut zusammenpassende Variablen haben
- Sie feststellen möchten, ob zwei Variablen miteinander zusammenhängen
- Sie eine unabhängige Variable mit mehreren Werten für eine abhängige Variable besitzen
Schritte: Gestreutes Diagramm erstellen | Schritte: PowerPoint‑Gestreutes Diagramm erstellen | Schritte: PowerPoint‑Präsentations‑Gestreutes Diagramm erstellen
- Bitte folgen Sie den bereits beschriebenen Schritten unter Normale Diagramme erstellen
- Für den dritten Schritt wählen Sie einen der folgenden Diagrammtypen:
- ChartType::ScatterWithMarkers – Streudiagramm mit Markierungen.
- ChartType::ScatterWithSmoothLinesAndMarkers – Streudiagramm, das durch Kurven verbunden ist, mit Markierungen.
- ChartType::ScatterWithSmoothLines – Streudiagramm, das durch Kurven verbunden ist, ohne Markierungen.
- ChartType::ScatterWithStraightLinesAndMarkers – Streudiagramm, das durch gerade Linien verbunden ist, mit Markierungen.
- ChartType::ScatterWithStraightLines – Streudiagramm, das durch gerade Linien verbunden ist, ohne Markierungen.
Dieser PHP‑Code demonstriert das Erstellen gestreuter Diagramme mit unterschiedlichen Markierungssätzen:
# Instanziert eine Präsentationsklasse, die eine PPTX-Datei repräsentiert
$pres = new Presentation();
try {
# Greift auf die erste Folie zu
$slide = $pres->getSlides()->get_Item(0);
# Erstellt das Standarddiagramm
$chart = $slide->getShapes()->addChart(ChartType::ScatterWithSmoothLines, 0, 0, 400, 400);
# Ermittelt den Index des Standard-Diagrammdaten-Arbeitsblatts
$defaultWorksheetIndex = 0;
# Ermittelt das Diagrammdaten-Arbeitsblatt
$fact = $chart->getChartData()->getChartDataWorkbook();
# Löscht die Demo-Serien
$chart->getChartData()->getSeries()->clear();
# Fügt neue Serien hinzu
$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());
# Nimmt die erste Diagrammserie
$series = $chart->getChartData()->getSeries()->get_Item(0);
# Fügt einen neuen Punkt (1:3) zur Serie hinzu
$series->getDataPoints()->addDataPointForScatterSeries($fact->getCell($defaultWorksheetIndex, 2, 1, 1), $fact->getCell($defaultWorksheetIndex, 2, 2, 3));
# Fügt einen neuen Punkt (2:10) hinzu
$series->getDataPoints()->addDataPointForScatterSeries($fact->getCell($defaultWorksheetIndex, 3, 1, 2), $fact->getCell($defaultWorksheetIndex, 3, 2, 10));
# Ändert den Serientyp
$series->setType(ChartType::ScatterWithStraightLinesAndMarkers);
# Ändert das Diagrammserien-Marker
$series->getMarker()->setSize(10);
$series->getMarker()->setSymbol(MarkerStyleType::Star);
# Nimmt die zweite Diagrammserie
$series = $chart->getChartData()->getSeries()->get_Item(1);
# Fügt dort einen neuen Punkt (5:2) hinzu
$series->getDataPoints()->addDataPointForScatterSeries($fact->getCell($defaultWorksheetIndex, 2, 3, 5), $fact->getCell($defaultWorksheetIndex, 2, 4, 2));
# Fügt einen neuen Punkt (3:1) hinzu
$series->getDataPoints()->addDataPointForScatterSeries($fact->getCell($defaultWorksheetIndex, 3, 3, 3), $fact->getCell($defaultWorksheetIndex, 3, 4, 1));
# Fügt einen neuen Punkt (2:2) hinzu
$series->getDataPoints()->addDataPointForScatterSeries($fact->getCell($defaultWorksheetIndex, 4, 3, 2), $fact->getCell($defaultWorksheetIndex, 4, 4, 2));
# Fügt einen neuen Punkt (5:1) hinzu
$series->getDataPoints()->addDataPointForScatterSeries($fact->getCell($defaultWorksheetIndex, 5, 3, 5), $fact->getCell($defaultWorksheetIndex, 5, 4, 1));
# Ändert das Diagrammserien-Marker
$series->getMarker()->setSize(10);
$series->getMarker()->setSymbol(MarkerStyleType::Circle);
$pres->save("AsposeChart_out.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Kreisdiagramme erstellen
Kreisdiagramme eignen sich besonders, um die Verhältnisbeziehung von Teilen zum Ganzen darzustellen, vor allem wenn die Daten kategoriale Bezeichnungen mit numerischen Werten enthalten. Enthält Ihre Daten jedoch sehr viele Teile oder Beschriftungen, sollten Sie lieber ein Balkendiagramm verwenden.
Schritte: Kreisdiagramm erstellen | Schritte: PowerPoint‑Kreisdiagramm erstellen | Schritte: PowerPoint‑Präsentations‑Kreisdiagramm erstellen
- Erzeugen Sie eine Instanz der Presentation-Klasse.
- Holen Sie sich über den Index die Referenz einer Folie.
- Fügen Sie ein Diagramm mit Standarddaten und dem gewünschten Typ (hier: ChartType.Pie) hinzu.
- Greifen Sie auf das Diagrammdaten‑IChartDataWorkbook zu.
- Löschen Sie die voreingestellten Serien und Kategorien.
- Fügen Sie neue Serien und Kategorien hinzu.
- Ergänzen Sie neue Diagrammdaten für die Serien.
- Fügen Sie neue Punkte hinzu und definieren Sie benutzerdefinierte Farben für die Sektoren des Kreisdiagramms.
- Setzen Sie Beschriftungen für die Serien.
- Definieren Sie Führungslinien für die Serienbeschriftungen.
- Legen Sie den Rotationswinkel für das Kreisdiagramm fest.
- Schreiben Sie die geänderte Präsentation als PPTX‑Datei.
Dieser PHP‑Code demonstriert das Erstellen eines Kreisdiagramms:
# Instanziert eine Präsentationsklasse, die eine PPTX-Datei darstellt
$pres = new Presentation();
try {
# Greift auf die erste Folie zu
$slides = $pres->getSlides()->get_Item(0);
# Fügt ein Diagramm mit Standarddaten hinzu
$chart = $slides->getShapes()->addChart(ChartType::Pie, 100, 100, 400, 400);
# Setzt den Diagrammtitel
$chart->getChartTitle()->addTextFrameForOverriding("Sample Title");
$chart->getChartTitle()->getTextFrameForOverriding()->getTextFrameFormat()->setCenterText(NullableBool::True);
$chart->getChartTitle()->setHeight(20);
$chart->setTitle(true);
# Setzt die erste Serie, um Werte anzuzeigen
$chart->getChartData()->getSeries()->get_Item(0)->getLabels()->getDefaultDataLabelFormat()->setShowValue(true);
# Setzt den Index für das Diagrammdatenblatt
$defaultWorksheetIndex = 0;
# Holt das Diagrammdaten-Arbeitsblatt
$fact = $chart->getChartData()->getChartDataWorkbook();
# Löscht die standardmäßig erzeugten Serien und Kategorien
$chart->getChartData()->getSeries()->clear();
$chart->getChartData()->getCategories()->clear();
# Fügt neue Kategorien hinzu
$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"));
# Fügt neue Serien hinzu
$series = $chart->getChartData()->getSeries()->add($fact->getCell(0, 0, 1, "Series 1"), $chart->getType());
# Befüllt die Seriendaten
$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));
# Funktioniert in neuer Version nicht
# Hinzufügen neuer Punkte und Festlegen der Sektorfarbe
# 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);
# Setzt die Sektorlinie
$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);
# Setzt die Sektorlinie
$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);
# Setzt die Sektorlinie
$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);
# Erstellt benutzerdefinierte Beschriftungen für jede Kategorie der neuen 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);
# Zeigt Führungslinien für das Diagramm
$series->getLabels()->getDefaultDataLabelFormat()->setShowLeaderLines(true);
# Setzt den Rotationswinkel für die Kuchen-Chart-Sektoren
$chart->getChartData()->getSeriesGroups()->get_Item(0)->setFirstSliceAngle(180);
# Speichert die Präsentation mit einem Diagramm
$pres->save("PieChart_out.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Liniendiagramme erstellen
Liniendiagramme (auch Liniendiagramme genannt) eignen sich besonders, um Änderungen von Werten über die Zeit hinweg zu visualisieren. Mit einem Liniendiagramm können Sie viele Daten gleichzeitig vergleichen, Trends über die Zeit verfolgen, Anomalien in Datenreihen hervorheben usw.
- Erzeugen Sie eine Instanz der Presentation-Klasse.
- Holen Sie sich über den Index die Referenz einer Folie.
- Fügen Sie ein Diagramm mit Standarddaten und dem gewünschten Typ (
ChartType::Line) hinzu. - Greifen Sie auf das Diagrammdaten‑IChartDataWorkbook zu.
- Löschen Sie die voreingestellten Serien und Kategorien.
- Fügen Sie neue Serien und Kategorien hinzu.
- Ergänzen Sie neue Diagrammdaten für die Serien.
- Schreiben Sie die geänderte Präsentation als PPTX‑Datei.
Dieser PHP‑Code demonstriert das Erstellen eines Liniendiagramms:
$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();
}
}
Standardmäßig werden die Punkte eines Liniendiagramms durch gerade, durchgehende Linien verbunden. Möchten Sie stattdessen gestrichelte Linien, können Sie den gewünschten Strichtyp wie folgt festlegen:
$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);
}
Baumkartendiagramme erstellen
Baumkartendiagramme eignen sich besonders für Verkaufsdaten, wenn Sie die relative Größe von Datenkategorien darstellen und gleichzeitig schnell die Elemente hervorheben möchten, die maßgeblich zu jeder Kategorie beitragen.
Schritte: Baumkartendiagramm erstellen | Schritte: PowerPoint‑Baumkartendiagramm erstellen | Schritte: PowerPoint‑Präsentations‑Baumkartendiagramm erstellen
- Erzeugen Sie eine Instanz der Presentation Klasse.
- Holen Sie sich über den Index die Referenz einer Folie.
- Fügen Sie ein Diagramm mit Standarddaten und dem gewünschten Typ (hier: ChartType.TreeMap) hinzu.
- Greifen Sie auf das Diagrammdaten‑IChartDataWorkbook zu.
- Löschen Sie die voreingestellten Serien und Kategorien.
- Fügen Sie neue Serien und Kategorien hinzu.
- Ergänzen Sie neue Diagrammdaten für die Serien.
- Schreiben Sie die geänderte Präsentation als PPTX‑Datei.
Dieser PHP‑Code demonstriert das Erstellen eines Baumkartendiagramms:
$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);
# Zweig 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"));
# Zweig 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();
}
}
Aktiendiagramme erstellen
Schritte: Aktiendiagramm erstellen | Schritte: PowerPoint‑Aktiendiagramm erstellen | Schritte: PowerPoint‑Präsentations‑Aktiendiagramm erstellen
- Erzeugen Sie eine Instanz der Presentation Klasse.
- Holen Sie sich über den Index die Referenz einer Folie.
- Fügen Sie ein Diagramm mit Standarddaten und dem gewünschten Typ (ChartType.OpenHighLowClose) hinzu.
- Greifen Sie auf das Diagrammdaten‑IChartDataWorkbook zu.
- Löschen Sie die voreingestellten Serien und Kategorien.
- Fügen Sie neue Serien und Kategorien hinzu.
- Ergänzen Sie neue Diagrammdaten für die Serien.
- Definieren Sie das Format für HiLowLines.
- Schreiben Sie die geänderte Präsentation als PPTX‑Datei.
Beispiel‑PHP‑Code zum Erstellen eines Aktiendiagramms:
$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();
}
}
Box‑ und Whisker‑Diagramme erstellen
Schritte: Box‑ und Whisker‑Diagramm erstellen | Schritte: PowerPoint‑Box‑ und Whisker‑Diagramm erstellen | Schritte: PowerPoint‑Präsentations‑Box‑ und Whisker‑Diagramm erstellen
- Erzeugen Sie eine Instanz der Presentation Klasse.
- Holen Sie sich über den Index die Referenz einer Folie.
- Fügen Sie ein Diagramm mit Standarddaten und dem gewünschten Typ (ChartType.BoxAndWhisker) hinzu.
- Greifen Sie auf das Diagrammdaten‑IChartDataWorkbook zu.
- Löschen Sie die voreingestellten Serien und Kategorien.
- Fügen Sie neue Serien und Kategorien hinzu.
- Ergänzen Sie neue Diagrammdaten für die Serien.
- Schreiben Sie die geänderte Präsentation als PPTX‑Datei.
Dieser PHP‑Code demonstriert das Erstellen eines Box‑ und Whisker‑Diagramms:
$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();
}
}
Trichter‑Diagramme erstellen
Schritte: Trichter‑Diagramm erstellen | Schritte: PowerPoint‑Trichter‑Diagramm erstellen | Schritte: PowerPoint‑Präsentations‑Trichter‑Diagramm erstellen
- Erzeugen Sie eine Instanz der Presentation Klasse.
- Holen Sie sich über den Index die Referenz einer Folie.
- Fügen Sie ein Diagramm mit Standarddaten und dem gewünschten Typ (ChartType.Funnel) hinzu.
- Schreiben Sie die geänderte Präsentation als PPTX‑Datei.
Der PHP‑Code zeigt, wie ein Trichter‑Diagramm erstellt wird:
$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();
}
}
Sonnenstrahl‑Diagramme erstellen
Schritte: Sonnenstrahl‑Diagramm erstellen | Schritte: PowerPoint‑Sonnenstrahl‑Diagramm erstellen | Schritte: PowerPoint‑Präsentations‑Sonnenstrahl‑Diagramm erstellen
- Erzeugen Sie eine Instanz der Presentation Klasse.
- Holen Sie sich über den Index die Referenz einer Folie.
- Fügen Sie ein Diagramm mit Standarddaten und dem gewünschten Typ (hier: ChartType.sunburst) hinzu.
- Schreiben Sie die geänderte Präsentation als PPTX‑Datei.
Dieser PHP‑Code demonstriert das Erstellen eines Sonnenstrahl‑Diagramms:
$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);
# Zweig 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"));
# Zweig 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();
}
}
Histogramm‑Diagramme erstellen
Schritte: Histogramm‑Diagramm erstellen | Schritte: PowerPoint‑Histogramm‑Diagramm erstellen | Schritte: PowerPoint‑Präsentations‑Histogramm‑Diagramm erstellen
- Erzeugen Sie eine Instanz der Presentation Klasse.
- Holen Sie sich über den Index die Referenz einer Folie.
- Fügen Sie ein Diagramm mit Standarddaten und dem gewünschten Typ (ChartType.Histogram) hinzu.
- Greifen Sie auf das Diagrammdaten‑IChartDataWorkbook zu.
- Löschen Sie die voreingestellten Serien und Kategorien.
- Fügen Sie neue Serien und Kategorien hinzu.
- Schreiben Sie die geänderte Präsentation als PPTX‑Datei.
Dieser PHP‑Code demonstriert das Erstellen eines Histogramm‑Diagramms:
$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);
Radar‑Diagramme erstellen
Schritte: Radar‑Diagramm erstellen | Schritte: PowerPoint‑Radar‑Diagramm erstellen | Schritte: PowerPoint‑Präsentations‑Radar‑Diagramm erstellen
- Erzeugen Sie eine Instanz der Presentation Klasse.
- Holen Sie sich über den Index die Referenz einer Folie.
- Fügen Sie ein Diagramm mit Daten und dem gewünschten Typ (
ChartType::Radar) hinzu. - Schreiben Sie die geänderte Präsentation als PPTX‑Datei.
Dieser PHP‑Code demonstriert das Erstellen eines Radar‑Diagramms:
$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();
}
}
Mehrkategorien‑Diagramme erstellen
Schritte: Mehrkategorien‑Diagramm erstellen | Schritte: PowerPoint‑Mehrkategorien‑Diagramm erstellen | Schritte: PowerPoint‑Präsentations‑Mehrkategorien‑Diagramm erstellen
- Erzeugen Sie eine Instanz der Presentation Klasse.
- Holen Sie sich über den Index die Referenz einer Folie.
- Fügen Sie ein Diagramm mit Standarddaten und dem gewünschten Typ (ChartType.ClusteredColumn) hinzu.
- Greifen Sie auf das Diagrammdaten‑IChartDataWorkbook zu.
- Löschen Sie die voreingestellten Serien und Kategorien.
- Fügen Sie neue Serien und Kategorien hinzu.
- Ergänzen Sie neue Diagrammdaten für die Serien.
- Schreiben Sie die geänderte Präsentation als PPTX‑Datei.
Dieser PHP‑Code demonstriert das Erstellen eines Mehrkategorien‑Diagramms:
$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"));
# Serien hinzufügen
$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));
# Präsentation mit Diagramm speichern
$pres->save("AsposeChart_out.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Karten‑Diagramme erstellen
Ein Karten‑Diagramm visualisiert ein Gebiet, das Daten enthält. Karten‑Diagramme eignen sich besonders zum Vergleich von Daten oder Werten über geografische Regionen hinweg.
Schritte: Karten‑Diagramm erstellen | Schritte: PowerPoint‑Karten‑Diagramm erstellen | Schritte: PowerPoint‑Präsentations‑Karten‑Diagramm erstellen
Dieser PHP‑Code demonstriert das Erstellen eines Karten‑Diagramms:
$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();
}
}
Kombinations‑Diagramme erstellen
Ein Kombinations‑Diagramm (oder Combo‑Diagramm) kombiniert zwei oder mehr Diagrammtypen in einem einzigen Diagramm. Dieses Diagramm ermöglicht es, Unterschiede zwischen Datensätzen hervorzuheben, zu vergleichen oder zu untersuchen, um Beziehungen zu erkennen.

Der folgende PHP‑Code zeigt, wie das oben abgebildete Kombinations‑Diagramm in einer PowerPoint‑Präsentation erstellt wird:
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);
// Diagrammtitel festlegen.
$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);
// Diagrammlegende festlegen.
$chart->getLegend()->setPosition(LegendPositionType::Bottom);
$chart->getLegend()->getTextFormat()->getPortionFormat()->setFontHeight(12);
// Standardmäßig erzeugte Serien und Kategorien löschen.
$chart->getChartData()->getSeries()->clear();
$chart->getChartData()->getCategories()->clear();
$worksheetIndex = 0;
$workbook = $chart->getChartData()->getChartDataWorkbook();
// Neue Kategorien hinzufügen.
$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"));
// Erste Serie hinzufügen.
$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) {
// Horizontale Achse festlegen.
$horizontalAxis = $chart->getAxes()->getHorizontalAxis();
$horizontalAxis->getTextFormat()->getPortionFormat()->setFontHeight(12);
$horizontalAxis->getFormat()->getLine()->getFillFormat()->setFillType(FillType::NoFill);
setAxisTitle($horizontalAxis, "X Axis");
// Vertikale Achse festlegen.
$verticalAxis = $chart->getAxes()->getVerticalAxis();
$verticalAxis->getTextFormat()->getPortionFormat()->setFontHeight(12);
$verticalAxis->getFormat()->getLine()->getFillFormat()->setFillType(FillType::NoFill);
setAxisTitle($verticalAxis, "Y Axis 1");
// Farbe der vertikalen Hauptgitternetzlinien festlegen.
$majorGridLinesFormat = $verticalAxis->getMajorGridLinesFormat()->getLine()->getFillFormat();
$majorGridLinesFormat->setFillType(FillType::Solid);
$majorGridLinesFormat->getSolidFillColor()->setColor(new java("java.awt.Color", 217, 217, 217));
}
function setSecondaryAxesFormat($chart) {
// Sekundäre horizontale Achse festlegen.
$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);
// Sekundäre vertikale Achse festlegen.
$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);
}
Diagramme aktualisieren
Schritte: PowerPoint‑Diagramm aktualisieren | Schritte: Präsentations‑Diagramm aktualisieren | Schritte: PowerPoint‑Präsentations‑Diagramm aktualisieren
- Instanziieren Sie eine Presentation-Klasse, die die Präsentation mit dem zu aktualisierenden Diagramm darstellt.
- Holen Sie sich die Referenz einer Folie über deren Index.
- Durchsuchen Sie alle Shapes, um das gewünschte Diagramm zu finden.
- Greifen Sie auf das Diagrammdaten‑Arbeitsblatt zu.
- Ändern Sie die Daten der Diagramm‑Serien, indem Sie die Serienwerte anpassen.
- Fügen Sie eine neue Serie hinzu und füllen Sie die Daten.
- Schreiben Sie die geänderte Präsentation als PPTX‑Datei.
Dieser PHP‑Code zeigt, wie ein Diagramm aktualisiert wird:
$pres = new Presentation();
try {
# Greift auf die erste Folie zu
$sld = $pres->getSlides()->get_Item(0);
# Holt das Diagramm mit Standarddaten
$chart = $sld->getShapes()->get_Item(0);
# Setzt den Index des Diagramm-Datenblatts
$defaultWorksheetIndex = 0;
# Holt das Diagramm-Daten-Arbeitsblatt
$fact = $chart->getChartData()->getChartDataWorkbook();
# Ändert den Diagramm-Kategorienamen
$fact->getCell($defaultWorksheetIndex, 1, 0, "Modified Category 1");
$fact->getCell($defaultWorksheetIndex, 2, 0, "Modified Category 2");
# Nimmt die erste Diagrammserie
$series = $chart->getChartData()->getSeries()->get_Item(0);
# Aktualisiert jetzt die Seriendaten
$fact->getCell($defaultWorksheetIndex, 0, 1, "New_Series1");// Seriennamen ändern
$series->getDataPoints()->get_Item(0)->getValue()->setData(90);
$series->getDataPoints()->get_Item(1)->getValue()->setData(123);
$series->getDataPoints()->get_Item(2)->getValue()->setData(44);
# Nimmt die zweite Diagrammserie
$series = $chart->getChartData()->getSeries()->get_Item(1);
# Aktualisiert jetzt die Seriendaten
$fact->getCell($defaultWorksheetIndex, 0, 2, "New_Series2");// Seriennamen ändern
$series->getDataPoints()->get_Item(0)->getValue()->setData(23);
$series->getDataPoints()->get_Item(1)->getValue()->setData(67);
$series->getDataPoints()->get_Item(2)->getValue()->setData(99);
# Fügt jetzt eine neue Serie hinzu
$chart->getChartData()->getSeries()->add($fact->getCell($defaultWorksheetIndex, 0, 3, "Series 3"), $chart->getType());
# Nimmt die dritte Diagrammserie
$series = $chart->getChartData()->getSeries()->get_Item(2);
# Populiert jetzt die Seriendaten
$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);
# Speichert die Präsentation mit Diagramm
$pres->save("AsposeChartModified_out.pptx", SaveFormat::Pptx);
} finally {
if (!java_is_null($pres)) {
$pres->dispose();
}
}
Datenbereich für Diagramme festlegen
Um den Datenbereich für ein Diagramm festzulegen, gehen Sie wie folgt vor:
- Instanziieren Sie eine Presentation-Klasse, die die Präsentation mit dem Diagramm enthält.
- Holen Sie sich die Referenz einer Folie über deren Index.
- Durchsuchen Sie alle Shapes, um das gewünschte Diagramm zu finden.
- Greifen Sie auf die Diagrammdaten zu und setzen Sie den Bereich.
- Speichern Sie die geänderte Präsentation als PPTX‑Datei.
Dieser PHP‑Code zeigt, wie der Datenbereich für ein Diagramm festgelegt wird:
$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();
}
}
Standard‑Marker in Diagrammen verwenden
Wenn Sie einen Standard‑Marker in Diagrammen verwenden, erhält jede Diagramm‑Serie automatisch ein unterschiedliches Standard‑Markersymbol.
Dieser PHP‑Code zeigt, wie ein Diagramm‑Series‑Marker automatisch gesetzt wird:
$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());
# Zweite Diagrammserie nehmen
$series2 = $chart->getChartData()->getSeries()->get_Item(1);
# Jetzt werden die Seriendaten befüllt
$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();
}
}