Hi!
I am trying to add chart into PowerPoint slide, see code in attachment. As you can see on attached screenshot, all series have the same color (orange). But I have specified 6 color accents, so it doesn’t work. What I am doing wrong (if I am)? Does there is any workaround?
(I am using Aspose.Slides for Java, version 7.5.0.0)
Hi Nikolay,
Hi Mudassir!
As you can see in my code, I am using color scheme to set chart colors:
ColorSchemeEx colorScheme = item.getTheme().getColorScheme();
colorScheme.getAccent1().setColor( new Color( 255, 98, 9 ) );
colorScheme.getAccent2().setColor( new Color( 255, 5, 0 ) );
colorScheme.getAccent3().setColor( new Color( 255, 10, 100 ) );
colorScheme.getAccent4().setColor( new Color( 0, 40, 186 ) );
colorScheme.getAccent5().setColor( new Color( 0, 247, 255 ) );
colorScheme.getAccent6().setColor( new Color( 0, 115, 255 ) );
I cannot use direct color setting by two reasons:
1) When I use color accents, I need to set only 6 colors, and when series more that 6, PowerPoint will generate all rest colors automatically (see screen-1.png)
2) I need to use chart styles for charts. But, when colors are set manually, some styles doesn’t work (for example, style 18, see screen-2.png). Also, user cannot change chart style without breaking coloring.
Hi Nikolay,
Hi Nikolay,
Our development team has investigated the issue on their end. Actually, the ColorScheme supports 6 Accents and other colors are generated by PowerPoint.Please try using the following sample code on your end by using Aspose.Slides for Java 14.9.0…
final int worksheetNum = 0;Many Thanks,
Presentation pres = new Presentation();
ISlide slide = pres.getSlides().get_Item(0);
IChart chart = slide.getShapes().addChart(ChartType.ClusteredColumn, 0, 0, 500, 500);
chart.getChartData().getSeries().clear();
chart.getChartData().getCategories().clear();
chart.setStyle(1);
chart.setWidth((float) pres.getSlideSize().getSize().getWidth());
chart.setHeight((float) pres.getSlideSize().getSize().getHeight());
IColorScheme colorScheme = pres.getMasterTheme().getColorScheme();
colorScheme.getAccent1().setColor( new Color( 255, 98, 9 ) );
colorScheme.getAccent2().setColor( new Color( 255, 5, 0 ) );
colorScheme.getAccent3().setColor( new Color( 255, 10, 100 ) );
colorScheme.getAccent4().setColor( new Color( 0, 40, 186 ) );
colorScheme.getAccent5().setColor( new Color( 0, 247, 255 ) );
colorScheme.getAccent6().setColor( new Color( 0, 115, 255 ) );
IChartDataWorkbook fact = chart.getChartData().getChartDataWorkbook();
String[] categoriesArr = {“Cat 1”};
String[] seriesArr = {“Series 1”, “Series 2”, “Series 3”, “Series 4”, “Series 5”, “Series 6”,
“Series 7”, “Series 8”, “Series 9”, “Series 10”, “Series 11”, “Series 12”};
fact.getCell( 0,0,0 ).setValue( 0 );
// Add series
for( int i = 0; i < seriesArr.length; i++ )
{
String series = seriesArr[i];
chart.getChartData().getSeries().add(fact.getCell( worksheetNum, 0, i+1, series), chart.getType());
}
// Add categories
for( int i = 0; i < categoriesArr.length; i++ )
{
String cat = categoriesArr[i];
chart.getChartData().getCategories().add(fact.getCell(worksheetNum, i+1, 0, cat));
}
// Fill values
for( int i = 0; i < seriesArr.length; i++ )
{
IChartSeries series = chart.getChartData().getSeries().get_Item( i );
for( int j = 0; j < categoriesArr.length; j++ )
{
series.getDataPoints().addDataPointForBarSeries(fact.getCell(worksheetNum, j+1, i+1, 1 + 100 * Math.random()));
}
}
pres.save( “out.pptx”, SaveFormat.Pptx );
The issues you have found earlier (filed as SLIDESJAVA-34000) have been fixed in this update.
This message was posted using Notification2Forum from Downloads module by Aspose Notifier.