如何使用Apache POI 4.0 XDDFChartData,XDDFBarChartData生成StackedBar图表;在使用Java的Excel工作表中,我不想使用jfree [英] how to generate stackedBar chart using apache poi 4.0 XDDFChartData, XDDFBarChartData ; in excel sheet using java, i dont want to use jfree

查看:230
本文介绍了如何使用Apache POI 4.0 XDDFChartData,XDDFBarChartData生成StackedBar图表;在使用Java的Excel工作表中,我不想使用jfree的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我需要使用Java编写的示例代码,目前我可以从图纸中读取值后绘制折线图和饼图,并且我还想生成StackedBar图表.

我为饼图添加了一段代码,该代码段适用于.ppt格式.我想要在Excel中对Java中的StackedBar图表使用相同的功能.


  String [] Categories = listCategories.toArray(new String [listCategories.size()]);Double []值= listValues.toArray(new Double [listValues.size()]);final int numOfPoints = Categories.length;最后的字符串categoryDataRange = chart.formatRange(new CellRangeAddress(1,numOfPoints,0,0));最终字符串值DataRange = chart.formatRange(new CellRangeAddress(1,numOfPoints,1,1));最终的XDDFDataSource<?>categoryData = XDDFDataSourcesFactory.fromArray(categories,categoryDataRange);最终XDDFNumericalDataSource< ;?扩展Number>valuesData = XDDFDataSourcesFactory.fromArray(values,valuesDataRange);XDDFPieChartData.Series firstSeries =(XDDFPieChartData.Series)pie.getSeries().get(0);firstSeries.replaceData(categoriesData,valuesData);firstSeries.setTitle(chartTitle,chart.setSheetTitle(chartTitle,0));firstSeries.setExplosion(25);chart.plot(pie); 

解决方案

Stacked在poi 4.12上无法正常工作,我未注释示例中的代码,并且条形图彼此相邻而不是彼此重叠./p>

I need a sample code in Java, currently I am able to draw line and pie charts charts after reading values from sheet, and I also want to generate a StackedBar chart.

I added a snipplet of code for pie chart which I have attempted which is for .ppt format. I want the same in excel for stackedBar chart in java.


String[] categories = listCategories.toArray(new String[listCategories.size()]);
            Double[] values = listValues.toArray(new Double[listValues.size()]);

            final int numOfPoints = categories.length;
            final String categoryDataRange = chart.formatRange(new CellRangeAddress(1, numOfPoints, 0, 0));
            final String valuesDataRange = chart.formatRange(new CellRangeAddress(1, numOfPoints, 1, 1));
            final XDDFDataSource<?> categoriesData = XDDFDataSourcesFactory.fromArray(categories, categoryDataRange);
            final XDDFNumericalDataSource<? extends Number> valuesData = XDDFDataSourcesFactory.fromArray(values, valuesDataRange);

            XDDFPieChartData.Series firstSeries = (XDDFPieChartData.Series) pie.getSeries().get(0);
            firstSeries.replaceData(categoriesData, valuesData);
            firstSeries.setTitle(chartTitle, chart.setSheetTitle(chartTitle, 0));
            firstSeries.setExplosion(25);
            chart.plot(pie);

解决方案

Stacked is not working correctly with poi 4.12, I uncommented the code in the example and the bars are next to each other and not on top of each other.

这篇关于如何使用Apache POI 4.0 XDDFChartData,XDDFBarChartData生成StackedBar图表;在使用Java的Excel工作表中,我不想使用jfree的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆