Optimera diagramberäkningar för presentationer i Java
Översikt
Aspose.Slides tillhandahåller API:er för att arbeta med diagramberäkningar och layoutdata i presentationer. Denna artikel visar hur du hämtar de faktiska värdena för diagramelement, inklusive den verkliga positionen och storleken på element som implementerar IActualLayout samt de faktiska värdena för diagramaxlar. Den förklarar också att dessa värden fylls i efter validering av diagramlayouten.
Dessutom visar artikeln hur du får den faktiska positionen för överordnade diagramelement och hur du döljer diagramkomponenter som titel, axlar, förklaring och rutnätlinjer. Tillsammans hjälper dessa exempel dig att inspektera diagramlayoutinformation och kontrollera synligheten för diagramelement i PowerPoint-presentationer programmässigt.
Beräkna faktiska värden för diagramelement
Aspose.Slides for Java tillhandahåller ett enkelt API för att hämta dessa egenskaper. Egenskaperna i gränssnittet IAxis ger information om den faktiska positionen för diagrammets axel (IAxis.getActualMaxValue, IAxis.getActualMinValue, IAxis.getActualMajorUnit, IAxis.getActualMinorUnit, IAxis.getActualMajorUnitScale, IAxis.getActualMinorUnitScale). Det är nödvändigt att först anropa metoden IChart.validateChartLayout() för att fylla egenskaperna med faktiska värden.
Presentation pres = new Presentation();
try {
Chart chart = (Chart)pres.getSlides().get_Item(0).getShapes().addChart(ChartType.Area, 100, 100, 500, 350);
chart.validateChartLayout();
double maxValue = chart.getAxes().getVerticalAxis().getActualMaxValue();
double minValue = chart.getAxes().getVerticalAxis().getActualMinValue();
double majorUnit = chart.getAxes().getHorizontalAxis().getActualMajorUnit();
double minorUnit = chart.getAxes().getHorizontalAxis().getActualMinorUnit();
} finally {
if (pres != null) pres.dispose();
}
Beräkna faktisk position för överordnade diagramelement
Aspose.Slides for Java tillhandahåller ett enkelt API för att hämta dessa egenskaper. Egenskaperna i gränssnittet IActualLayout ger information om den faktiska positionen för överordnade diagramelement (IActualLayout.getActualX, IActualLayout.getActualY, IActualLayout.getActualWidth, IActualLayout.getActualHeight). Det är nödvändigt att först anropa metoden IChart.validateChartLayout() för att fylla egenskaperna med faktiska värden.
Presentation pres = new Presentation();
try {
Chart chart = (Chart) pres.getSlides().get_Item(0).getShapes().addChart(ChartType.ClusteredColumn, 100, 100, 500, 350);
chart.validateChartLayout();
double x = chart.getPlotArea().getActualX();
double y = chart.getPlotArea().getActualY();
double w = chart.getPlotArea().getActualWidth();
double h = chart.getPlotArea().getActualHeight();
} finally {
if (pres != null) pres.dispose();
}
Dölj diagramelement
Detta ämne hjälper dig att förstå hur du döljer information i ett diagram. Med Aspose.Slides for Java kan du dölja Titel, Vertikal axel, Horisontell axel och Rutnätlinjer i diagrammet. Nedanstående kodexempel visar hur du använder dessa egenskaper.
Presentation pres = new Presentation();
try {
ISlide slide = pres.getSlides().get_Item(0);
IChart chart = slide.getShapes().addChart(ChartType.LineWithMarkers, 140, 118, 320, 370);
//Döljer diagramtitel
chart.setTitle(false);
///Döljer värdeaxel
chart.getAxes().getVerticalAxis().setVisible(false);
//Synlighet för kategoriaxel
chart.getAxes().getHorizontalAxis().setVisible(false);
//Döljer förklaring
chart.setLegend(false);
//Döljer huvudrutnätslinjer
chart.getAxes().getHorizontalAxis().getMajorGridLinesFormat().getLine().getFillFormat().setFillType(FillType.NoFill);
for (int i = 0; i < chart.getChartData().getSeries().size(); i++)
{
chart.getChartData().getSeries().removeAt(i);
}
IChartSeries series = chart.getChartData().getSeries().get_Item(0);
series.getMarker().setSymbol(MarkerStyleType.Circle);
series.getLabels().getDefaultDataLabelFormat().setShowValue(true);
series.getLabels().getDefaultDataLabelFormat().setPosition(LegendDataLabelPosition.Top);
series.getMarker().setSize(15);
//Ställer in serielinjens färg
series.getFormat().getLine().getFillFormat().setFillType(FillType.Solid);
series.getFormat().getLine().getFillFormat().getSolidFillColor().setColor(Color.MAGENTA);
series.getFormat().getLine().setDashStyle(LineDashStyle.Solid);
pres.save("HideInformationFromChart.pptx", SaveFormat.Pptx);
} finally {
if (pres != null) pres.dispose();
}
FAQ
Fungerar externa Excel-arbetsböcker som datakälla, och hur påverkar det omräkning?
Ja. Ett diagram kan referera till en extern arbetsbok: när du ansluter eller uppdaterar den externa källan hämtas formler och värden från den arbetsboken, och diagrammet återspeglar uppdateringarna under öppnings- och redigeringsoperationer. API:et låter dig ange den externa arbetsboken sökväg och hantera den länkade datan.
Kan jag beräkna och visa trendlinjer utan att implementera regression själv?
Ja. Trendlines (linjära, exponentiella och andra) läggs till och uppdateras av Aspose.Slides; deras parametrar omräknas automatiskt från seriedatan, så du behöver inte implementera egna beräkningar.
Om en presentation har flera diagram med externa länkar, kan jag styra vilken arbetsbok varje diagram använder för beräknade värden?
Ja. Varje diagram kan peka på sin egen externa arbetsbok, eller så kan du skapa/ersätta en extern arbetsbok per diagram oberoende av de andra.