private static void setBarData(XWPFChart chart, String chartTitle, String[] series, String[] categories, Double[] values1, Double[] values2) { final List<XDDFChartData> data = chart.getChartSeries(); final XDDFBarChartData bar = (XDDFBarChartData) data.get(0); 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 String valuesDataRange2 = chart.formatRange(new CellRangeAddress(1, numOfPoints, 2, 2)); final XDDFDataSource<?> categoriesData = XDDFDataSourcesFactory.fromArray(categories, categoryDataRange, 0); final XDDFNumericalDataSource<? extends Number> valuesData = XDDFDataSourcesFactory.fromArray(values1, valuesDataRange, 1); values1[6] = 16.0; // if you ever want to change the underlying data final XDDFNumericalDataSource<? extends Number> valuesData2 = XDDFDataSourcesFactory.fromArray(values2, valuesDataRange2, 2); XDDFChartData.Series series1 = bar.getSeries().get(0); series1.replaceData(categoriesData, valuesData); series1.setTitle(series[0], chart.setSheetTitle(series[0], 0)); XDDFChartData.Series series2 = bar.addSeries(categoriesData, valuesData2); series2.setTitle(series[1], chart.setSheetTitle(series[1], 1)); chart.plot(bar); chart.setTitleText(chartTitle); // https://stackoverflow.com/questions/30532612 chart.setTitleOverlay(false); }
public void setTitle(String title, CellReference titleRef) { if (titleRef == null) { getSeriesText().setV(title); } else { CTStrRef ref; if (getSeriesText().isSetStrRef()) { ref = getSeriesText().getStrRef(); } else { ref = getSeriesText().addNewStrRef(); } CTStrData cache; if (ref.isSetStrCache()) { cache = ref.getStrCache(); } else { cache = ref.addNewStrCache(); } if (cache.sizeOfPtArray() < 1) { cache.addNewPtCount().setVal(1); cache.addNewPt().setIdx(0);; } cache.getPtArray(0).setV(title); ref.setF(titleRef.formatAsString()); } }
private static void setBarData(XSLFChart chart, String chartTitle, String[] series, String[] categories, Double[] values1, Double[] values2) { final List<XDDFChartData> data = chart.getChartSeries(); final XDDFBarChartData bar = (XDDFBarChartData) data.get(0); 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 String valuesDataRange2 = chart.formatRange(new CellRangeAddress(1, numOfPoints, 2, 2)); final XDDFDataSource<?> categoriesData = XDDFDataSourcesFactory.fromArray(categories, categoryDataRange, 0); final XDDFNumericalDataSource<? extends Number> valuesData = XDDFDataSourcesFactory.fromArray(values1, valuesDataRange, 1); values1[6] = 16.0; // if you ever want to change the underlying data final XDDFNumericalDataSource<? extends Number> valuesData2 = XDDFDataSourcesFactory.fromArray(values2, valuesDataRange2, 2); XDDFChartData.Series series1 = bar.getSeries().get(0); series1.replaceData(categoriesData, valuesData); series1.setTitle(series[0], chart.setSheetTitle(series[0], 0)); XDDFChartData.Series series2 = bar.addSeries(categoriesData, valuesData2); series2.setTitle(series[1], chart.setSheetTitle(series[1], 1)); chart.plot(bar); chart.setTitleText(chartTitle); // https://stackoverflow.com/questions/30532612 // chart.setTitleOverlay(overlay); }
protected Series(XDDFDataSource<?> category, XDDFNumericalDataSource<? extends Number> values) { replaceData(category, values); }
public void plot() { int numOfPoints = categoryData.getPointCount(); if (categoryData.isNumeric()) { CTNumData cache = retrieveNumCache(getAxDS(), categoryData); fillNumCache(cache, numOfPoints, (XDDFNumericalDataSource<?>) categoryData); } else { CTStrData cache = retrieveStrCache(getAxDS(), categoryData); fillStringCache(cache, numOfPoints, categoryData); } CTNumData cache = retrieveNumCache(getNumDS(), valuesData); fillNumCache(cache, numOfPoints, valuesData); }
public void plot(XDDFChartData data) { XSSFSheet sheet = getSheet(); for (XDDFChartData.Series series : data.getSeries()) { series.plot(); fillSheet(sheet, series.getCategoryData(), series.getValuesData()); } }
public void setTitle(String title, CellReference titleRef) { if (titleRef == null) { getSeriesText().setV(title); } else { CTStrRef ref; if (getSeriesText().isSetStrRef()) { ref = getSeriesText().getStrRef(); } else { ref = getSeriesText().addNewStrRef(); } CTStrData cache; if (ref.isSetStrCache()) { cache = ref.getStrCache(); } else { cache = ref.addNewStrCache(); } if (cache.sizeOfPtArray() < 1) { cache.addNewPtCount().setVal(1); cache.addNewPt().setIdx(0);; } cache.getPtArray(0).setV(title); ref.setF(titleRef.formatAsString()); } }
protected Series(XDDFDataSource<?> category, XDDFNumericalDataSource<? extends Number> values) { replaceData(category, values); }
public void plot(XDDFChartData data) { XSSFSheet sheet = getSheet(); for (XDDFChartData.Series series : data.getSeries()) { series.plot(); fillSheet(sheet, series.getCategoryData(), series.getValuesData()); } }
public void plot() { int numOfPoints = categoryData.getPointCount(); if (categoryData.isNumeric()) { CTNumData cache = retrieveNumCache(getAxDS(), categoryData); fillNumCache(cache, numOfPoints, (XDDFNumericalDataSource<?>) categoryData); } else { CTStrData cache = retrieveStrCache(getAxDS(), categoryData); fillStringCache(cache, numOfPoints, categoryData); } CTNumData cache = retrieveNumCache(getNumDS(), valuesData); fillNumCache(cache, numOfPoints, valuesData); }