Diagram adatsorok kezelése prezentációkban Java-val
Áttekintés
Ez a cikk leírja a ChartSeries szerepét az Aspose.Slides-ben, kiemelve, hogyan van felépítve és megjelenítve az adat a prezentációkban. Ezek az objektumok biztosítják az alapvető elemeket, amelyek meghatározzák az egyes adatpontkészleteket, kategóriákat és megjelenési paramétereket egy diagramon. A ChartSeries használatával a fejlesztők zökkenőmentesen integrálhatják a háttéradatforrásokat, és teljes irányítást tarthatnak a információ megjelenítése felett, ami dinamikus, adatvezérelt prezentációkat eredményez, amelyek világosan közvetítik a betekintéseket és elemzéseket.
A sor egy sor vagy oszlop számot jelent, amely a diagramon van ábrázolva.

Diagram sorok átfedésének beállítása
A IChartSeriesOverlap tulajdonsággal megadhatja, mennyire fedjék át egymást az oszlopok és sávok egy 2D diagramon (tartomány: -100 és 100). Ez a tulajdonság a szülő sorcsoport összes sorára vonatkozik: ez a megfelelő csoport tulajdonságának projekciója. Ennek következtében ez a tulajdonság csak olvasható.
Használja a ParentSeriesGroup.Overlap be/kiolvasási tulajdonságot az Overlap kívánt értékének beállításához.
- Hozzon létre egy példányt a Presentation osztályból.
- Adjon hozzá egy csoportosított oszlopdiagramot egy diára.
- Hozzáférés az első diagram sorhoz.
- Hozzáférés a diagram sor
ParentSeriesGrouptulajdonságához, és állítsa be a sor számára kívánt átfedés értékét. - Írja a módosított prezentációt egy PPTX fájlba.
Ez a Java kód bemutatja, hogyan állítható be a diagram sor átfedése:
Presentation pres = new Presentation();
try {
// Diagram hozzáadása
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 600, 400, true);
IChartSeriesCollection series = chart.getChartData().getSeries();
if (series.get_Item(0).getOverlap() == 0)
{
// Beállítja a sor átfedését
series.get_Item(0).getParentSeriesGroup().setOverlap((byte)-30);
}
// A prezentáció fájlt lemezre írja
pres.save("SetChartSeriesOverlap_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
A sor színének módosítása
Az Aspose.Slides for Java lehetővé teszi, hogy a sor színét a következő módon módosítsa:
- Hozzon létre egy példányt a Presentation osztályból.
- Adjon hozzá egy diagramot a diára.
- Hozzáférés ahhoz a sorhoz, amelynek a színét módosítani kívánja.
- Állítsa be a kívánt kitöltéstípust és kitöltőszínt.
- Mentse el a módosított prezentációt.
Ez a Java kód bemutatja, hogyan változtatható meg egy sor színe:
Presentation pres = new Presentation("test.pptx");
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Pie, 50, 50, 600, 400);
IChartDataPoint point = chart.getChartData().getSeries().get_Item(0).getDataPoints().get_Item(1);
point.setExplosion(30);
point.getFormat().getFill().setFillType(FillType.Solid);
point.getFormat().getFill().getSolidFillColor().setColor(Color.BLUE);
pres.save("output.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
A sor kategória színének módosítása
Az Aspose.Slides for Java lehetővé teszi, hogy a sor kategória színét a következő módon módosítsa:
- Hozzon létre egy példányt a Presentation osztályból.
- Adjon hozzá egy diagramot a diára.
- Hozzáférés a sor kategóriához, amelynek a színét módosítani kívánja.
- Állítsa be a kívánt kitöltéstípust és kitöltőszínt.
- Mentse el a módosított prezentációt.
Ez a Java kód bemutatja, hogyan változtatható meg egy sor kategória színe:
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 600, 400);
IChartDataPoint point = chart.getChartData().getSeries().get_Item(0).getDataPoints().get_Item(0);
point.getFormat().getFill().setFillType(FillType.Solid);
point.getFormat().getFill().getSolidFillColor().setColor(Color.BLUE);
pres.save("output.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
A sor nevének módosítása
Alapértelmezés szerint a diagram jelmagyarázatának nevei a cellák tartalma, amelyek a minden oszlop vagy sor adat felett helyezkednek el.
A példánkban (minta kép) az oszlopok: Series 1, Series 2, és Series 3; a sorok: Category 1, Category 2, Category 3, és Category 4.
Az Aspose.Slides for Java lehetővé teszi, hogy frissítse vagy megváltoztassa egy sor nevét a diagram adataiban és a jelmagyarázatban.
Ez a Java kód bemutatja, hogyan változtatható meg egy sor neve a diagram adataiban, a ChartDataWorkbook-ben:
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Column3D, 50, 50, 600, 400, true);
IChartDataCell seriesCell = chart.getChartData().getChartDataWorkbook().getCell(0, 0, 1);
seriesCell.setValue("New name");
pres.save("pres.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Ez a Java kód bemutatja, hogyan változtatható meg egy sor neve a jelmagyarázatban a Series használatával:
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Column3D, 50, 50, 600, 400, true);
IChartSeries series = chart.getChartData().getSeries().get_Item(0);
IStringChartValue name = series.getName();
name.getAsCells().get_Item(0).setValue("New name");
} finally {
if (pres != null) pres.dispose();
}
Diagram sor kitöltőszínének beállítása
Az Aspose.Slides for Java lehetővé teszi, hogy a diagram sorok automatikus kitöltőszínét a rajzterületen a következő módon állítsa be:
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezze meg a dia referenciáját az indexe alapján.
- Adjon hozzá egy diagramot alapértelmezett adatokkal, a kívánt típustól függően (az alábbi példában a
ChartType.ClusteredColumntípust használtuk). - Hozzáférés a diagram sorhoz, és állítsa be a kitöltőszínt Automatikusra.
- Mentse a prezentációt egy PPTX fájlba.
Ez a Java kód bemutatja, hogyan állítható be az automatikus kitöltőszín egy diagram sorhoz:
Presentation pres = new Presentation();
try {
// Létrehoz egy csoportosított oszlopdiagramot
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 100, 50, 600, 400);
// Beállítja a sor kitöltési formátumát automatikusra
for (int i = 0; i < chart.getChartData().getSeries().size(); i++)
{
chart.getChartData().getSeries().get_Item(i).getAutomaticSeriesColor();
}
// A prezentáció fájlt lemezre írja
pres.save("AutoFillSeries_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Inverz kitöltőszín beállítása diagram sorhoz
Az Aspose.Slides lehetővé teszi, hogy a diagram sorok inverz kitöltőszínét a rajzterületen a következő módon állítsa be:
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezze meg a dia referenciáját az indexe alapján.
- Adjon hozzá egy diagramot alapértelmezett adatokkal, a kívánt típustól függően (az alábbi példában a
ChartType.ClusteredColumntípust használtuk). - Hozzáférés a diagram sorhoz, és állítsa be a kitöltőszínt invertáltra.
- Mentse a prezentációt egy PPTX fájlba.
Ez a Java kód bemutatja a műveletet:
Color inverColor = Color.RED;
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 100, 100, 400, 300);
IChartDataWorkbook workBook = chart.getChartData().getChartDataWorkbook();
chart.getChartData().getSeries().clear();
chart.getChartData().getCategories().clear();
// Új sorok és kategóriák hozzáadása
chart.getChartData().getSeries().add(workBook.getCell(0, 0, 1, "Series 1"), chart.getType());
chart.getChartData().getCategories().add(workBook.getCell(0, 1, 0, "Category 1"));
chart.getChartData().getCategories().add(workBook.getCell(0, 2, 0, "Category 2"));
chart.getChartData().getCategories().add(workBook.getCell(0, 3, 0, "Category 3"));
// Az első diagram sorát veszi, és feltölti a sor adataival.
IChartSeries series = chart.getChartData().getSeries().get_Item(0);
series.getDataPoints().addDataPointForBarSeries(workBook.getCell(0, 1, 1, -20));
series.getDataPoints().addDataPointForBarSeries(workBook.getCell(0, 2, 1, 50));
series.getDataPoints().addDataPointForBarSeries(workBook.getCell(0, 3, 1, -30));
Color seriesColor = series.getAutomaticSeriesColor();
series.setInvertIfNegative(true);
series.getFormat().getFill().setFillType(FillType.Solid);
series.getFormat().getFill().getSolidFillColor().setColor(seriesColor);
series.getInvertedSolidFillColor().setColor(inverColor);
pres.save("SetInvertFillColorChart_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Sor invertálása negatív érték esetén
Az Aspose.Slides lehetővé teszi az invertálás beállítását az IChartDataPoint.InvertIfNegative és a ChartDataPoint.InvertIfNegative tulajdonságokkal. Amikor a tulajdonságokkal invertálás van beállítva, az adatpont színei megfordulnak, ha negatív értéket kap.
Ez a Java kód bemutatja a műveletet:
Presentation pres = new Presentation();
try {
IChart chart = pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 50, 50, 600, 400, true);
IChartSeriesCollection series = chart.getChartData().getSeries();
chart.getChartData().getSeries().clear();
IChartSeries chartSeries = series.add(chart.getChartData().getChartDataWorkbook().getCell(0, "B1"), chart.getType());
chartSeries.getDataPoints().addDataPointForBarSeries(chart.getChartData().getChartDataWorkbook().getCell(0, "B2", -5));
chartSeries.getDataPoints().addDataPointForBarSeries(chart.getChartData().getChartDataWorkbook().getCell(0, "B3", 3));
chartSeries.getDataPoints().addDataPointForBarSeries(chart.getChartData().getChartDataWorkbook().getCell(0, "B4", -2));
chartSeries.getDataPoints().addDataPointForBarSeries(chart.getChartData().getChartDataWorkbook().getCell(0, "B5", 1));
chartSeries.setInvertIfNegative(false);
chartSeries.getDataPoints().get_Item(2).setInvertIfNegative(true);
pres.save("out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Specifikus pontadatok törlése
Az Aspose.Slides for Java lehetővé teszi a DataPoints adatainak törlését egy adott diagram sor számára a következő módon:
- Hozzon létre egy példányt a Presentation osztályból.
- Szerezze meg egy dia referenciáját az indexe alapján.
- Szerezze meg egy diagram referenciáját az indexe alapján.
- Iteráljon végig az összes diagram
DataPointselemén, és állítsa azXValueésYValueértékeket nullára. - Törölje az összes
DataPoints-ot egy adott diagram sorhoz. - Írja a módosított prezentációt egy PPTX fájlba.
Ez a Java kód bemutatja a műveletet:
Presentation pres = new Presentation("TestChart.pptx");
try {
ISlide sl = pres.getSlides().get_Item(0);
IChart chart = (IChart)sl.getShapes().get_Item(0);
for (IChartDataPoint dataPoint : chart.getChartData().getSeries().get_Item(0).getDataPoints())
{
dataPoint.getXValue().getAsCell().setValue(null);
dataPoint.getYValue().getAsCell().setValue(null);
}
chart.getChartData().getSeries().get_Item(0).getDataPoints().clear();
pres.save("ClearSpecificChartSeriesDataPointsData.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
Sor hézag szélességének beállítása
Az Aspose.Slides for Java lehetővé teszi, hogy a sor GapWidth (hézag szélesség) tulajdonságával a következő módon állítsa be:
- Hozzon létre egy példányt a Presentation osztályból.
- Hozzáférés az első diára.
- Diagram hozzáadása alapértelmezett adatokkal.
- Hozzáférés bármely diagram sorhoz.
- Állítsa be a
GapWidthtulajdonságot. - Írja a módosított prezentációt egy PPTX fájlba.
Ez a Java kód bemutatja, hogyan állítható be egy sor hézag szélessége:
// Üres prezentáció létrehozása
Presentation pres = new Presentation();
try {
// A prezentáció első diájának elérése
ISlide slide = pres.getSlides().get_Item(0);
// Diagram hozzáadása alapértelmezett adatokkal
IChart chart = slide.getShapes().addChart(ChartType.StackedColumn, 0, 0, 500, 500);
// A diagram adatlap indexének beállítása
int defaultWorksheetIndex = 0;
// A diagram adatlap lekérése
IChartDataWorkbook fact = chart.getChartData().getChartDataWorkbook();
// Sorok 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());
// 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"));
// A második diagram sorának kiválasztása
IChartSeries series = chart.getChartData().getSeries().get_Item(1);
// A sor adatainak feltöltése
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));
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));
// GapWidth érték beállítása
series.getParentSeriesGroup().setGapWidth(50);
// Prezentáció mentése lemezre
pres.save("GapWidth_out.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
FAQ
Van korlát arra, hogy egy diagram hány sor tartalmazhat?
Az Aspose.Slides nem szab ki fix korlátot a hozzáadott sorok számára. A gyakorlati határ a diagram olvashatóságától és az alkalmazás rendelkezésére álló memóriától függ.
Mi van, ha egy csoporton belüli oszlopok túl közel vagy túl távol vannak egymástól?
Állítsa be a GapWidth értéket az adott sorra (vagy annak szülő sorcsoportjára). Az érték növelése megnöveli az oszlopok közötti távolságot, míg csökkentése közelebb hozza őket egymáshoz.