Diagramok létrehozása vagy frissítése PowerPoint prezentációkban Java-ban
Áttekintés
Ez a cikk átfogó útmutatót nyújt arról, hogyan hozhatunk létre és testre szabhatunk diagramokat az Aspose.Slides segítségével. Megtanulja, hogyan lehet programozottan diagramot hozzáadni egy diára, adatokat betölteni, és különféle formázási lehetőségeket alkalmazni, hogy megfeleljen a konkrét tervezési követelményeknek. A cikk során részletes kódrészletek mutatják be az egyes lépéseket, a prezentáció és a diagramobjektum inicializálásától a sorozatok, tengelyek és jelmagyarázatok beállításáig. Az útmutató követésével alapos megértést szerez a dinamikus diagramgenerálás integrálásáról alkalmazásaiban, egyszerűsítve az adatközpontú prezentációk létrehozásának folyamatát.
Diagram létrehozása
A diagramok segítenek az embereknek gyorsan megjeleníteni az adatokat és olyan meglátásokat nyerni, amelyek egy táblázatból vagy táblázatkezelőből nem egyértelműek.
Miért hozunk létre diagramokat?
- nagy mennyiségű adat összegyűjtése, sűrítése vagy összefoglalása egyetlen dián egy prezentációban
- minta és trendek feltárása az adatokban
- megállapítani az adatok irányát és lendületét időbeli vagy egy adott mérőegységhez viszonyítva
- kijelölni a kiugró értékeket, rendellenességeket, eltéréseket, hibákat, értelmetlen adatokat stb.
- komplex adatok kommunikálása vagy bemutatása
A PowerPoint-ban diagramokat a Beszúrás funkción keresztül hozhat létre, amely sablonokat biztosít a különféle diagramtípusok tervezéséhez. Az Aspose.Slides használatával mind szabványos diagramokat (népszerű diagramtípusok alapján), mind egyedi diagramokat hozhat létre.
Note
Diagramok létrehozásához használja a ChartType osztályt. Ennek az osztálynak a mezői különböző diagramtípusoknak felelnek meg.Klaszteres oszlopdiagramok létrehozása
Ez a szakasz bemutatja, hogyan hozhatók létre klaszteres oszlopdiagramok az Aspose.Slides használatával. Megtanulja, hogyan inicializáljon egy prezentációt, adjon hozzá egy diagramot, és testre szabja annak elemeit, például a címet, adatokat, sorozatokat, kategóriákat és a stílusát. Kövesse az alábbi lépéseket, hogy lássa, hogyan jön létre egy szabványos klaszteres oszlopdiagram:
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezzen hivatkozást egy diára az indexe alapján.
- Adjon hozzá egy diagramot némi adattal, és adja meg a
ChartType.ClusteredColumntípust. - Adjon címet a diagramnak.
- Hozza el a diagram adat munkalapját.
- Törölje az összes alapértelmezett sorozatot és kategóriát.
- Adjon hozzá új sorozatokat és kategóriákat.
- Adjon hozzá új diagram adatokat a diagram sorozathoz.
- Alkalmazzon kitöltőszínt a diagram sorozatára.
- Adj címkéket a diagram sorozathoz.
- Mentse a módosított prezentációt PPTX fájlként.
import com.aspose.slides.*;
import java.awt.Color;
// PPTX fájlt képviselő prezentáció osztály példányosítása
Presentation pres = new Presentation();
try {
// Az első dia elérése
ISlide sld = pres.getSlides().get_Item(0);
// Diagram hozzáadása az alapértelmezett adatokkal
IChart chart = sld.getShapes().addChart(ChartType.ClusteredColumn, 0, 0, 500, 500);
// A diagram címének beállítása
chart.getChartTitle().addTextFrameForOverriding("Sample Title");
chart.getChartTitle().getTextFrameForOverriding().getTextFrameFormat().setCenterText(NullableBool.True);
chart.getChartTitle().setHeight(20);
chart.setTitle(true);
// A diagram adatlap indexének beállítása
int defaultWorksheetIndex = 0;
// A diagram adat munkalapjának lekérése
IChartDataWorkbook fact = chart.getChartData().getChartDataWorkbook();
// Az alapértelmezett generált sorozatok és kategóriák törlése
chart.getChartData().getSeries().clear();
chart.getChartData().getCategories().clear();
int s = chart.getChartData().getSeries().size();
s = chart.getChartData().getCategories().size();
// Új sorozatok hozzáadása
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());
// Új kategóriák hozzáadása
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"));
// Az első diagram sorozat lekérése
IChartSeries series = chart.getChartData().getSeries().get_Item(0);
// Most feltölti a sorozat adatait
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));
// A sorozat kitöltőszínének beállítása
series.getFormat().getFill().setFillType(FillType.Solid);
series.getFormat().getFill().getSolidFillColor().setColor(Color.RED);
// A második diagram sorozat lekérése
series = chart.getChartData().getSeries().get_Item(1);
// Sorozat adatok feltöltése
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));
// A sorozat kitöltőszínének beállítása
series.getFormat().getFill().setFillType(FillType.Solid);
series.getFormat().getFill().getSolidFillColor().setColor(Color.GREEN);
// Egyedi címkék létrehozása minden kategóriához az új sorozathoz
// Az első címke beállítása a kategórianév megjelenítésére
IDataLabel lbl = series.getDataPoints().get_Item(0).getLabel();
lbl.getDataLabelFormat().setShowCategoryName(true);
lbl = series.getDataPoints().get_Item(1).getLabel();
lbl.getDataLabelFormat().setShowSeriesName(true);
// Érték megjelenítése a harmadik címkén
lbl = series.getDataPoints().get_Item(2).getLabel();
lbl.getDataLabelFormat().setShowValue(true);
lbl.getDataLabelFormat().setShowSeriesName(true);
lbl.getDataLabelFormat().setSeparator("/");
// A prezentáció mentése diagrammal
pres.save("output.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Szóráspont-diagramok létrehozása
Szóráspont-diagramok (más néven szóráspont ábrák vagy x-y grafikonok) gyakran használatosak minták keresésére vagy két változó közötti korreláció bemutatására.
Használjon szóráspont-diagramot, ha:
- párosított numerikus adatai vannak
- két változója jól párosítható egymással
- meg szeretné határozni, hogy a két változó kapcsolódik-e egymáshoz
- független változója több értékkel rendelkezik az egy függő változóhoz
- Kövesse a Create Clustered Column Charts lépéseit.
- A harmadik lépésnél adjon hozzá egy diagramot némi adattal, és adja meg a diagramtípusát az alábbiak közül:
- ChartType.ScatterWithMarkers - Egy szóráspont-diagramot ábrázol.
- ChartType.ScatterWithSmoothLinesAndMarkers - Egy szóráspont-diagramot ábrázol, amelyet íves vonalak kötnek össze, adatjelölőkkel.
- ChartType.ScatterWithSmoothLines - Egy szóráspont-diagramot ábrázol, amelyet íves vonalak kötnek össze, adatjelölők nélkül.
- ChartType.ScatterWithStraightLinesAndMarkers - Egy szóráspont-diagramot ábrázol, amelyet egyenes vonalak kötnek össze, adatjelölőkkel.
- ChartType.ScatterWithStraightLines - Egy szóráspont-diagramot ábrázol, amelyet egyenes vonalak kötnek össze, adatjelölők nélkül.
import com.aspose.slides.*;
// PPTX fájlt képviselő prezentáció osztály példányosítása
Presentation pres = new Presentation();
try {
// Az első dia elérése
ISlide slide = pres.getSlides().get_Item(0);
// Alapértelmezett diagram létrehozása
IChart chart = slide.getShapes().addChart(ChartType.ScatterWithSmoothLines, 0, 0, 400, 400);
// Az alapértelmezett diagram adat munkalap indexének lekérése
int defaultWorksheetIndex = 0;
// A diagram adat munkalapjának lekérése
IChartDataWorkbook fact = chart.getChartData().getChartDataWorkbook();
// Demo sorozat törlése
chart.getChartData().getSeries().clear();
// Új sorozatok hozzáadása
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());
// Az első diagram sorozat lekérése
IChartSeries series = chart.getChartData().getSeries().get_Item(0);
// Új pont (1:3) hozzáadása a sorozathoz
series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 2, 1, 1), fact.getCell(defaultWorksheetIndex, 2, 2, 3));
// Új pont (2:10) hozzáadása
series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 3, 1, 2), fact.getCell(defaultWorksheetIndex, 3, 2, 10));
// Sorozattípus módosítása
series.setType(ChartType.ScatterWithStraightLinesAndMarkers);
// Diagram sorozat jelölő módosítása
series.getMarker().setSize(10);
series.getMarker().setSymbol(MarkerStyleType.Star);
// A második diagram sorozat lekérése
series = chart.getChartData().getSeries().get_Item(1);
// Új pont (5:2) hozzáadása
series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 2, 3, 5), fact.getCell(defaultWorksheetIndex, 2, 4, 2));
// Új pont (3:1) hozzáadása
series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 3, 3, 3), fact.getCell(defaultWorksheetIndex, 3, 4, 1));
// Új pont (2:2) hozzáadása
series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 4, 3, 2), fact.getCell(defaultWorksheetIndex, 4, 4, 2));
// Új pont (5:1) hozzáadása
series.getDataPoints().addDataPointForScatterSeries(fact.getCell(defaultWorksheetIndex, 5, 3, 5), fact.getCell(defaultWorksheetIndex, 5, 4, 1));
// Diagram sorozat jelölő módosítása
series.getMarker().setSize(10);
series.getMarker().setSymbol(MarkerStyleType.Circle);
pres.save("AsposeChart_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Kördiagramok létrehozása
Kördiagramok a legalkalmasabbak a rész‑egész viszony bemutatására, különösen, ha az adatok kategóriákat tartalmaznak numerikus értékekkel. Azonban, ha az adat sok részt vagy címkét tartalmaz, érdemes inkább oszlopdiagramot használni.
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezzen hivatkozást egy diára az indexe alapján.
- Adjon hozzá egy diagramot alapértelmezett adatokkal, és adja meg a ChartType.Pie típust.
- Hozza el a diagram adat munkafüzetet IChartDataWorkbook.
- Törölje az alapértelmezett sorozatokat és kategóriákat.
- Adjon hozzá új sorozatokat és kategóriákat.
- Adjon hozzá új diagram adatokat a diagram sorozathoz.
- Adjon hozzá új pontokat a diagramhoz, és alkalmazzon egyedi színeket a kördiagram szeleteinek.
- Állítson be címkéket a sorozathoz.
- Engedélyezze a vezetővonalakat a sorozatcímkékhez.
- Állítsa be a kördiagram szeletek forgatási szögét.
- Mentse a módosított prezentációt PPTX fájlként.
import com.aspose.slides.*;
import java.awt.Color;
// PPTX fájlt képviselő prezentáció osztály példányosítása
Presentation pres = new Presentation();
try {
// Az első dia elérése
ISlide slides = pres.getSlides().get_Item(0);
// Alapértelmezett adatokkal rendelkező diagram hozzáadása
IChart chart = slides.getShapes().addChart(ChartType.Pie, 100, 100, 400, 400);
// A diagram címének beállítása
chart.getChartTitle().addTextFrameForOverriding("Sample Title");
chart.getChartTitle().getTextFrameForOverriding().getTextFrameFormat().setCenterText(NullableBool.True);
chart.getChartTitle().setHeight(20);
chart.setTitle(true);
// A diagram adatlap indexének beállítása
int defaultWorksheetIndex = 0;
// A diagram adat munkalapjának lekérése
IChartDataWorkbook fact = chart.getChartData().getChartDataWorkbook();
// Az alapértelmezett létrehozott sorozatok és kategóriák törlése
chart.getChartData().getSeries().clear();
chart.getChartData().getCategories().clear();
// Új kategóriák hozzáadása
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"));
// Új sorozatok hozzáadása
IChartSeries series = chart.getChartData().getSeries().add(fact.getCell(0, 0, 1, "Series 1"), chart.getType());
//Kitölti a sorozat adatait
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));
// Nem működik az új verzióban
// Új pontok hozzáadása és a szelet színének beállítása
// series.IsColorVaried = true;
chart.getChartData().getSeriesGroups().get_Item(0).setColorVaried(true);
IChartDataPoint point = series.getDataPoints().get_Item(0);
point.getFormat().getFill().setFillType(FillType.Solid);
point.getFormat().getFill().getSolidFillColor().setColor(Color.CYAN);
// Beállítja a szelet szegélyét
point.getFormat().getLine().getFillFormat().setFillType(FillType.Solid);
point.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(Color.GRAY);
point.getFormat().getLine().setWidth(3.0);
point.getFormat().getLine().setStyle(LineStyle.ThinThick);
point.getFormat().getLine().setDashStyle(LineDashStyle.DashDot);
IChartDataPoint point1 = series.getDataPoints().get_Item(1);
point1.getFormat().getFill().setFillType(FillType.Solid);
point1.getFormat().getFill().getSolidFillColor().setColor(Color.ORANGE);
// Beállítja a szelet szegélyét
point1.getFormat().getLine().getFillFormat().setFillType(FillType.Solid);
point1.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(Color.BLUE);
point1.getFormat().getLine().setWidth(3.0);
point1.getFormat().getLine().setStyle(LineStyle.Single);
point1.getFormat().getLine().setDashStyle(LineDashStyle.LargeDashDot);
IChartDataPoint point2 = series.getDataPoints().get_Item(2);
point2.getFormat().getFill().setFillType(FillType.Solid);
point2.getFormat().getFill().getSolidFillColor().setColor(Color.YELLOW);
// Beállítja a szelet szegélyét
point2.getFormat().getLine().getFillFormat().setFillType(FillType.Solid);
point2.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(Color.RED);
point2.getFormat().getLine().setWidth(2.0);
point2.getFormat().getLine().setStyle(LineStyle.ThinThin);
point2.getFormat().getLine().setDashStyle(LineDashStyle.LargeDashDotDot);
// Egyedi címkék létrehozása minden kategóriához az új sorozathoz
IDataLabel lbl1 = series.getDataPoints().get_Item(0).getLabel();
// lbl.ShowCategoryName = true;
lbl1.getDataLabelFormat().setShowValue(true);
IDataLabel lbl2 = series.getDataPoints().get_Item(1).getLabel();
lbl2.getDataLabelFormat().setShowValue(true);
lbl2.getDataLabelFormat().setShowLegendKey(true);
lbl2.getDataLabelFormat().setShowPercentage(true);
IDataLabel lbl3 = series.getDataPoints().get_Item(2).getLabel();
lbl3.getDataLabelFormat().setShowSeriesName(true);
lbl3.getDataLabelFormat().setShowPercentage(true);
// Vezetővonalak megjelenítése a diagramon
series.getLabels().getDefaultDataLabelFormat().setShowLeaderLines(true);
// A kördiagram szeletek forgatási szögének beállítása
chart.getChartData().getSeriesGroups().get_Item(0).setFirstSliceAngle(180);
// A prezentáció mentése diagrammal
pres.save("PieChart_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Vonaldiagramok létrehozása
Vonaldiagramok (más néven vonalgrafikonok) a legalkalmasabbak olyan helyzetekben, ahol az értékváltozást időbeli viszonylatban szeretné bemutatni. Vonaldiagram segítségével nagy mennyiségű adatot egy időben összehasonlíthat, nyomon követheti a változásokat és trendeket, kiemelheti az anomáliákat az adat sorozatokban, és egyebek.
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezzen hivatkozást egy diára az indexe alapján.
- Adjon hozzá egy diagramot alapértelmezett adatokkal, és adja meg a ChartType.Line típust.
- Mentse a módosított prezentációt PPTX fájlként.
import com.aspose.slides.*;
Presentation pres = new Presentation();
try {
IChart lineChart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Line, 10, 50, 600, 350);
pres.save("lineChart.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Alapértelmezés szerint a vonaldiagram pontjait egyenes, folyamatos vonalak kötik össze. Ha azt szeretné, hogy a pontok helyett szaggatott vonalakkal legyenek összekötve, a kívánt vonaltípust az alábbiak szerint adhatja meg:
import com.aspose.slides.*;
Presentation pres = new Presentation();
try {
IChart lineChart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Line, 10, 50, 600, 350);
for (IChartSeries series : lineChart.getChartData().getSeries())
{
series.getFormat().getLine().setDashStyle(LineDashStyle.Dash);
}
pres.save("lineChart.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Fa térkép diagramok létrehozása
Fa térkép diagramok a legalkalmasabbak értékesítési adatok esetén, amikor a kategória adatok relatív méretét szeretné megmutatni, és gyorsan felhívni a figyelmet a nagy hozzájárulást jelentő elemekre minden kategórián belül.
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezzen hivatkozást egy diára az indexe alapján.
- Adjon hozzá egy diagramot alapértelmezett adatokkal, és adja meg a ChartType.Treemap típust.
- Hozza el a diagram adat munkafüzetet IChartDataWorkbook.
- Törölje az alapértelmezett sorozatokat és kategóriákat.
- Adjon hozzá új sorozatokat és kategóriákat.
- Adjon hozzá új diagram adatokat a diagram sorozathoz.
- Mentse a módosított prezentációt PPTX fájlként.
import com.aspose.slides.*;
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Treemap, 50, 50, 500, 400);
chart.getChartData().getCategories().clear();
chart.getChartData().getSeries().clear();
IChartDataWorkbook wb = chart.getChartData().getChartDataWorkbook();
wb.clear(0);
//ág 1
IChartCategory 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"));
//ág 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"));
IChartSeries 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 (pres != null) pres.dispose();
}
Részvény diagramok létrehozása
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezzen hivatkozást egy diára az indexe alapján.
- Adjon hozzá egy diagramot alapértelmezett adatokkal, és adja meg a ChartType.OpenHighLowClose típust.
- Hozza el a diagram adat munkafüzetet IChartDataWorkbook.
- Törölje az alapértelmezett sorozatokat és kategóriákat.
- Adjon hozzá új sorozatokat és kategóriákat.
- Adjon hozzá új diagram adatokat a diagram sorozathoz.
- Adja meg a high‑low vonalak formátumát.
- Mentse a módosított prezentációt PPTX fájlként.
import com.aspose.slides.*;
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.OpenHighLowClose, 50, 50, 600, 400, false);
chart.getChartData().getSeries().clear();
chart.getChartData().getCategories().clear();
IChartDataWorkbook 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());
IChartSeries 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);
for (IChartSeries ser : chart.getChartData().getSeries())
{
ser.getFormat().getLine().getFillFormat().setFillType(FillType.NoFill);
}
pres.save("output.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Doboz és perem diagramok létrehozása
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezzen hivatkozást egy diára az indexe alapján.
- Adjon hozzá egy diagramot alapértelmezett adatokkal, és adja meg a ChartType.BoxAndWhisker típust.
- Hozza el a diagram adat munkafüzetet IChartDataWorkbook.
- Törölje az alapértelmezett sorozatokat és kategóriákat.
- Adjon hozzá új sorozatokat és kategóriákat.
- Adjon hozzá új diagram adatokat a diagram sorozathoz.
- Mentse a módosított prezentációt PPTX fájlként.
import com.aspose.slides.*;
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.BoxAndWhisker, 50, 50, 500, 400);
chart.getChartData().getCategories().clear();
chart.getChartData().getSeries().clear();
IChartDataWorkbook 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"));
IChartSeries 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 (pres != null) pres.dispose();
}
Tölcsér diagramok létrehozása
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezzen hivatkozást egy diára az indexe alapján.
- Adjon hozzá egy diagramot alapértelmezett adatokkal, és adja meg a ChartType.Funnel típust.
- Mentse a módosított prezentációt PPTX fájlként.
import com.aspose.slides.*;
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Funnel, 50, 50, 500, 400);
chart.getChartData().getCategories().clear();
chart.getChartData().getSeries().clear();
IChartDataWorkbook 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"));
IChartSeries 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 (pres != null) pres.dispose();
}
Napcsillag diagramok létrehozása
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezzen hivatkozást egy diára az indexe alapján.
- Adjon hozzá egy diagramot alapértelmezett adatokkal, és adja meg a ChartType.Sunburst típust.
- Mentse a módosított prezentációt PPTX fájlként.
import com.aspose.slides.*;
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Sunburst, 50, 50, 500, 400);
chart.getChartData().getCategories().clear();
chart.getChartData().getSeries().clear();
IChartDataWorkbook wb = chart.getChartData().getChartDataWorkbook();
wb.clear(0);
//ág 1
IChartCategory 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"));
//ág 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"));
IChartSeries 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 (pres != null) pres.dispose();
}
Hisztogram diagramok létrehozása
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezzen hivatkozást egy diára az indexe alapján.
- Adjon hozzá egy diagramot alapértelmezett adatokkal, és adja meg a ChartType.Histogram típust.
- Hozza el a diagram adat munkafüzetet IChartDataWorkbook.
- Törölje az alapértelmezett sorozatokat és kategóriákat.
- Adjon hozzá új sorozatokat és kategóriákat.
- Mentse a módosított prezentációt PPTX fájlként.
import com.aspose.slides.*;
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Histogram, 50, 50, 500, 400);
chart.getChartData().getCategories().clear();
chart.getChartData().getSeries().clear();
IChartDataWorkbook wb = chart.getChartData().getChartDataWorkbook();
wb.clear(0);
IChartSeries 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);
pres.save("Histogram.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Radar diagramok létrehozása
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezzen hivatkozást egy diára az indexe alapján.
- Adjon hozzá egy diagramot némi adattal, és adja meg a kívánt diagramtípust (ChartType.Radar ebben az esetben).
- Mentse a módosított prezentációt PPTX fájlként.
import com.aspose.slides.*;
Presentation 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 (pres != null) pres.dispose();
}
Többkategóriás diagramok létrehozása
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezzen hivatkozást egy diára az indexe alapján.
- Adjon hozzá egy diagramot alapértelmezett adatokkal, és adja meg a ChartType.ClusteredColumn típust.
- Hozza el a diagram adat munkafüzetet IChartDataWorkbook.
- Törölje az alapértelmezett sorozatokat és kategóriákat.
- Adjon hozzá új sorozatokat és kategóriákat.
- Adjon hozzá új diagram adatokat a diagram sorozathoz.
- Mentse a módosított prezentációt PPTX fájlként.
import com.aspose.slides.*;
Presentation pres = new Presentation();
try {
IChart ch = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 100, 100, 600, 450);
ch.getChartData().getSeries().clear();
ch.getChartData().getCategories().clear();
IChartDataWorkbook fact = ch.getChartData().getChartDataWorkbook();
fact.clear(0);
int defaultWorksheetIndex = 0;
IChartCategory 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"));
// Sorozat hozzáadása
IChartSeries 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));
// Prezentáció mentése diagrammal
pres.save("AsposeChart_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Térkép diagramok létrehozása
Térkép diagramok a földrajzi adatokat jelenítik meg, és segítenek az értékek összehasonlításában régiók között.
import com.aspose.slides.*;
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Map, 50, 50, 500, 400);
pres.save("mapChart.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Kombinált diagramok létrehozása
A kombinált diagram (vagy combo diagram) több diagramtípust egyesít egyetlen grafikonba. Ez a diagram lehetővé teszi, hogy kiemelje, összehasonlítsa vagy megvizsgálja két vagy több adatcsoport közötti különbségeket, segítve a köztük lévő kapcsolatok azonosítását.

A következő Java kód bemutatja, hogyan hozható létre a fenti kombinált diagram egy PowerPoint prezentációban:
import com.aspose.slides.*;
import java.awt.Color;
static void createComboChart() {
Presentation presentation = new Presentation();
ISlide slide = presentation.getSlides().get_Item(0);
try {
IChart chart = createChartWithFirstSeries(slide);
addSecondSeriesToChart(chart);
addThirdSeriesToChart(chart);
setPrimaryAxesFormat(chart);
setSecondaryAxesFormat(chart);
presentation.save("combo-chart.pptx", SaveFormat.Pptx);
} finally {
presentation.dispose();
}
}
static IChart createChartWithFirstSeries(ISlide slide) {
IChart chart = slide.getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 600, 400);
// Állítsa be a diagram címét.
chart.setTitle(true);
chart.getChartTitle().addTextFrameForOverriding("Chart Title");
chart.getChartTitle().setOverlay(false);
IParagraph titleParagraph = chart.getChartTitle().getTextFrameForOverriding().getParagraphs().get_Item(0);
IPortionFormat titleFormat = titleParagraph.getParagraphFormat().getDefaultPortionFormat();
titleFormat.setFontBold(NullableBool.False);
titleFormat.setFontHeight(18f);
// Állítsa be a diagram jelmagyarázatát.
chart.getLegend().setPosition(LegendPositionType.Bottom);
chart.getLegend().getTextFormat().getPortionFormat().setFontHeight(12f);
// Törölje az alapértelmezett generált sorozatokat és kategóriákat.
chart.getChartData().getSeries().clear();
chart.getChartData().getCategories().clear();
int worksheetIndex = 0;
IChartDataWorkbook workbook = chart.getChartData().getChartDataWorkbook();
// Új kategóriák hozzáadása.
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"));
// Az első sorozat hozzáadása.
IChartDataCell seriesNameCell = workbook.getCell(worksheetIndex, 0, 1, "Series 1");
IChartSeries series = chart.getChartData().getSeries().add(seriesNameCell, chart.getType());
series.getParentSeriesGroup().setOverlap((byte)-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;
}
static void addSecondSeriesToChart(IChart chart) {
IChartDataWorkbook workbook = chart.getChartData().getChartDataWorkbook();
final int worksheetIndex = 0;
IChartDataCell seriesNameCell = workbook.getCell(worksheetIndex, 0, 2, "Series 2");
IChartSeries series = chart.getChartData().getSeries().add(seriesNameCell, ChartType.ClusteredColumn);
series.getParentSeriesGroup().setOverlap((byte)-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));
}
static void addThirdSeriesToChart(IChart chart) {
IChartDataWorkbook workbook = chart.getChartData().getChartDataWorkbook();
final int worksheetIndex = 0;
IChartDataCell seriesNameCell = workbook.getCell(worksheetIndex, 0, 3, "Series 3");
IChartSeries 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);
}
static void setPrimaryAxesFormat(IChart chart) {
// A vízszintes tengely beállítása.
IAxis horizontalAxis = chart.getAxes().getHorizontalAxis();
horizontalAxis.getTextFormat().getPortionFormat().setFontHeight(12f);
horizontalAxis.getFormat().getLine().getFillFormat().setFillType(FillType.NoFill);
setAxisTitle(horizontalAxis, "X Axis");
// A függőleges tengely beállítása.
IAxis verticalAxis = chart.getAxes().getVerticalAxis();
verticalAxis.getTextFormat().getPortionFormat().setFontHeight(12f);
verticalAxis.getFormat().getLine().getFillFormat().setFillType(FillType.NoFill);
setAxisTitle(verticalAxis, "Y Axis 1");
// A függőleges fő rácsvonalak színének beállítása.
ILineFillFormat majorGridLinesFormat = verticalAxis.getMajorGridLinesFormat().getLine().getFillFormat();
majorGridLinesFormat.setFillType(FillType.Solid);
majorGridLinesFormat.getSolidFillColor().setColor(new Color(217, 217, 217));
}
static void setSecondaryAxesFormat(IChart chart) {
// A másodlagos vízszintes tengely beállítása.
IAxis 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);
// A másodlagos függőleges tengely beállítása.
IAxis secondaryVerticalAxis = chart.getAxes().getSecondaryVerticalAxis();
secondaryVerticalAxis.setPosition(AxisPositionType.Right);
secondaryVerticalAxis.getTextFormat().getPortionFormat().setFontHeight(12f);
secondaryVerticalAxis.getFormat().getLine().setFillType(FillType.NoFill);
secondaryVerticalAxis.getMajorGridLinesFormat().getLine().getFillFormat().setFillType(FillType.NoFill);
secondaryVerticalAxis.getMinorGridLinesFormat().getLine().getFillFormat().setFillType(FillType.NoFill);
setAxisTitle(secondaryVerticalAxis, "Y Axis 2");
}
static void setAxisTitle(IAxis axis, String axisTitle) {
axis.setTitle(true);
axis.getTitle().setOverlay(false);
IParagraph titleParagraph = axis.getTitle().addTextFrameForOverriding(axisTitle).getParagraphs().get_Item(0);
IPortionFormat titleFormat = titleParagraph.getParagraphFormat().getDefaultPortionFormat();
titleFormat.setFontBold(NullableBool.False);
titleFormat.setFontHeight(12f);
}
Diagramok frissítése
- Hozzon létre egy példányt a Presentation osztályból, amely a frissíteni kívánt diagramot tartalmazó prezentációt képviseli.
- Szerezzen hivatkozást egy diára az indexe alapján.
- Járja be az összes alakzatot, hogy megtalálja a kívánt diagramot.
- Hozza el a diagram adat munkalapját.
- Módosítsa a diagram adat sorozatot a sorozat értékek megváltoztatásával.
- Adjon hozzá egy új sorozatot, és töltse fel az adataival.
- Mentse a módosított prezentációt PPTX fájlként.
import com.aspose.slides.*;
// Megnyitja a prezentációt, amely tartalmazza a frissítendő diagramot
Presentation pres = new Presentation("ExistingChart.pptx");
try {
// Az első dia elérése
ISlide sld = pres.getSlides().get_Item(0);
// A diagram lekérése a diáról
IChart chart = (IChart)sld.getShapes().get_Item(0);
// A diagram adatlap indexének beállítása
int defaultWorksheetIndex = 0;
// A diagram adat munkalapjának lekérése
IChartDataWorkbook fact = chart.getChartData().getChartDataWorkbook();
// A diagram kategória nevének módosítása
fact.getCell(defaultWorksheetIndex, 1, 0, "Modified Category 1");
fact.getCell(defaultWorksheetIndex, 2, 0, "Modified Category 2");
// Az első diagram sorozat lekérése
IChartSeries series = chart.getChartData().getSeries().get_Item(0);
// Sorozat adatainak frissítése
fact.getCell(defaultWorksheetIndex, 0, 1, "New_Series1");// Sorozat nevének módosítása
series.getDataPoints().get_Item(0).getValue().setData(90);
series.getDataPoints().get_Item(1).getValue().setData(123);
series.getDataPoints().get_Item(2).getValue().setData(44);
// A második diagram sorozat lekérése
series = chart.getChartData().getSeries().get_Item(1);
// Sorozat adatainak frissítése
fact.getCell(defaultWorksheetIndex, 0, 2, "New_Series2");// Sorozat nevének módosítása
series.getDataPoints().get_Item(0).getValue().setData(23);
series.getDataPoints().get_Item(1).getValue().setData(67);
series.getDataPoints().get_Item(2).getValue().setData(99);
// Új sorozat hozzáadása
chart.getChartData().getSeries().add(fact.getCell(defaultWorksheetIndex, 0, 3, "Series 3"), chart.getType());
// A harmadik diagram sorozat lekérése
series = chart.getChartData().getSeries().get_Item(2);
// Sorozat adatainak feltöltése
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);
// Prezentáció mentése diagrammal
pres.save("AsposeChartModified_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Diagram adat‑tartomány beállítása
- Hozzon létre egy példányt a Presentation osztályból, amely a diagramot tartalmazó prezentációt képviseli.
- Szerezzen hivatkozást egy diára az indexe alapján.
- Járja be az összes alakzatot, hogy megtalálja a kívánt diagramot.
- Hozza el a diagram adatokat, és állítsa be a tartományt.
- Mentse a módosított prezentációt PPTX fájlként.
import com.aspose.slides.*;
// Megnyitja a prezentációt, amely tartalmazza a diagramot
Presentation pres = new Presentation("ExistingChart.pptx");
try {
ISlide slide = pres.getSlides().get_Item(0);
IChart chart = (IChart)slide.getShapes().get_Item(0);
chart.getChartData().setRange("Sheet1!A1:B4");
pres.save("SetDataRange_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Alapértelmezett jelölők használata diagramokban
Ha alapértelmezett jelölőket használ diagramokban, minden diagram sorozat automatikusan különböző jelölőszimbólumot kap.
import com.aspose.slides.*;
Presentation pres = new Presentation();
try {
ISlide slide = pres.getSlides().get_Item(0);
IChart chart = slide.getShapes().addChart(ChartType.LineWithMarkers, 10, 10, 400, 400);
chart.getChartData().getSeries().clear();
chart.getChartData().getCategories().clear();
IChartDataWorkbook fact = chart.getChartData().getChartDataWorkbook();
chart.getChartData().getSeries().add(fact.getCell(0, 0, 1, "Series 1"), chart.getType());
IChartSeries 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());
// A második diagram sorozatának lekérése
IChartSeries series2 = chart.getChartData().getSeries().get_Item(1);
// Most a sorozat adatainak feltöltése
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 (pres != null) pres.dispose();
}
FAQ
Milyen diagramtípusokat támogat az Aspose.Slides?
Az Aspose.Slides széles körű chart types támogat, többek között oszlop, vonal, kör, terület, szóráspont, hisztogram, radar és még sok más diagramtípust. Ez a rugalmasság lehetővé teszi, hogy a legmegfelelőbb diagramtípust válassza adatmegjelenítési igényeihez.
Hogyan adhatok új diagramot egy diára?
Új diagram hozzáadásához először létre kell hoznia egy példányt a Presentation osztályból, majd az indexével kell lekérnie a kívánt diát, és végül meghívni a diagram hozzáadására szolgáló metódust, megadva a diagramtípust és a kezdeti adatokat. Ez a folyamat közvetlenül beilleszti a diagramot a prezentációba.
Hogyan frissíthetem egy diagramon megjelenített adatokat?
A diagram adatait a diagram adat munkafüzetének (IChartDataWorkbook) a hozzáférésével, az alapértelmezett sorozatok és kategóriák törlésével, majd a saját adatok hozzáadásával frissítheti. Ez lehetővé teszi a diagram aktuális adatokkal való frissítését.
Lehetséges testre szabni a diagram megjelenését?
Igen, az Aspose.Slides kiterjedt testreszabási lehetőségeket biztosít. Színek, betűtípusok, címkék, jelmagyarázatok és egyéb formatting elements módosításával a diagram megjelenését az Ön konkrét tervezési követelményeihez igazíthatja.