简体   繁体   中英

Inserting bar charts using Aspose Words for Java

Is there a way of creating and inserting a bar chart in a Ms Word document using Aspose Words for Java? I can't find a way to do this. Thanks.

Aspose.Words for Java currently doesn't allow you to create the bar chart in Word documents. However, if you just want to add a static bar chart, you may try Aspose.Cells for Java to create bar chart and render it to image . After that, you can add this bar chart image in Word document using Aspose.Words for Java. Do you think this might help in your scenario? If it does then you can use the following code snippet to create and render the bar chart to image:

//Create a new Workbook.

Workbook workbook = new Workbook();

//Get the first worksheet.

Worksheet sheet = workbook.getWorksheets().get(0);

//Set the name of worksheet

sheet.setName("Data");

//Get the cells collection in the sheet.

Cells cells = workbook.getWorksheets().get(0).getCells();

//Put some values into a cells of the Data sheet.

cells.get("A1").setValue("Region");

cells.get("A2").setValue("France");

cells.get("A3").setValue("Germany");

cells.get("A4").setValue("England");

cells.get("A5").setValue("Sweden");

cells.get("A6").setValue("Italy");

cells.get("A7").setValue("Spain");

cells.get("A8").setValue("Portugal");

cells.get("B1").setValue("Sale");

cells.get("B2").setValue(70000);

cells.get("B3").setValue(55000);

cells.get("B4").setValue(30000);

cells.get("B5").setValue(40000);

cells.get("B6").setValue(35000);

cells.get("B7").setValue(32000);

cells.get("B8").setValue(10000);

//Create chart

int chartIndex = sheet.getCharts().add(ChartType.COLUMN, 12, 1, 33, 12);

Chart chart = sheet.getCharts().get(chartIndex);

//Set properties of chart title

chart.getTitle().setText("Sales By Region");

chart.getTitle().getTextFont().setBold(true);

chart.getTitle().getTextFont().setSize(12);

//Set properties of nseries

chart.getNSeries().add("Data!B2:B8", true);

chart.getNSeries().setCategoryData("Data!A2:A8");

//Set the fill colors for the series's data points (France - Portugal(7 points))

ChartPointCollection chartPoints = chart.getNSeries().get(0).getPoints();

ChartPoint point = chartPoints.get(0);

point.getArea().setForegroundColor(Color.getCyan());

point = chartPoints.get(1);

point.getArea().setForegroundColor(Color.getBlue());

point = chartPoints.get(2);

point.getArea().setForegroundColor(Color.getYellow());

point = chartPoints.get(3);

point.getArea().setForegroundColor(Color.getRed());

point = chartPoints.get(4);

point.getArea().setForegroundColor(Color.getBlack());

point = chartPoints.get(5);

point.getArea().setForegroundColor(Color.getGreen());

point = chartPoints.get(6);

point.getArea().setForegroundColor(Color.getMaroon());

//Set the legend invisible

chart.setShowLegend(false);

//Get the Chart mage

ImageOrPrintOptions imgOpts = new ImageOrPrintOptions();

imgOpts.setImageFormat(ImageFormat.getPng());

//Save the chart image file.

chart.toImage(new FileOutputStream("D:\\Files\\MyChartImage.png"), imgOpts);

Disclosure: I work as developer evangelist at Aspose.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM