Hi
I am currently testing out the graphing functionality of Aspose Cells for Java.
Is there any way to create graphs that appear as they would if created natively in Excel 2010 which just look more polished than the ones created from Aspose that look more “dated”.
I have attached a example xls to demonstrate.
Kind Regards
Iain
Hi,
Well, your desired chart is MS Excel 2007/2010 (XLSX format type) oriented but your Excel file is XLS (Excel 97-2003), so when you save/create in XLS format using Aspose.Cells for Java API, your chart looks in prior fashion. If you need to create Excel 2007/2010 oriented chart, please save your Excel file to Excel 2007/2010 e.g XLSX format instead of XLS, it would work fine. Here is my sample code that works and the generated chart looks same as your desired chart. I used the data range for chart in your template file, see the sample code below:
Sample code:
Workbook book = new Workbook();
book.open(“MyBook1.xls”);
Worksheet sheet = book.getWorksheets().getSheet(0);
Cells cells = sheet.getCells();
Chart chart = sheet.getCharts().addChart(ChartType.BAR_3D_STACKED, 30, 2, 50, 10);
chart.getNSeries().add(“A1:B3”, true);
chart.getCategoryAxis().getAxisLine().setVisible(false);
chart.getCategoryAxis().setVisible(true);
book.save(“BarStacked3d.xlsx”, FileFormatType.XLSX);
Thank you.
Excellent many thanks for your quick response.
I take it I am then able to copy this chart and embed into a Word document using Aspose.Word, could you confirm that is correct, if it does I think the purchase decision will have been made!
Are you also able to do this with the java version of the software?
Are the 2 versions very similar or does the .net version offer a greater amount of features?
Hi,
Sorry for the confusion. I should have given you the Aspose.Cells for Java documentation topic instead.
Well, you may also take the image of the chart using
chart to image feature (that Aspose.Cells for Java provides) and insert the image into word document using Aspose.Words for Java product.
Thank you.
Ok, that is a shame.
So is there a way that the Excel native chart can be embeded into a word document rather than converting it to am image, to be honest that would probably be better than an image anyway.
Cheers
Hi,
We will figure the issue soon.
Regarding embedding Excel file (with charts) in a word document, kindly ask your query to Aspose.Words team, you may post a query in Aspose.Words forum, they will help you soon.
Thank you.
Hi,
We found the issue of rendering the newly created chart to image. After initial testing, we found the chart serieses were not rendered on the image. It is the issue we need to fix.
However, from the your post and code at
https://forum.aspose.com/t/124293
We think maybe you were talking about the appearance of the generated image for existing chart in template file. If your “MyBook.xlsx” was just re-saved from “MyBook.xls”, the first chart will be surely drawn as “old style” because its properties had been explicitly customed as what should be in old style in the xlsx file when re-saving it by ms excel. And even opened in ms excel, the first chart should be shown as “old style” too. So we will surely render it according to its explicitly defined properties and the generated image will look like “old style”.
Hi,
I am not sure exactly what you mean but even if I open an XLSX document with the “new style” chart when I generate an image of the the chart within it using toImage() it still creates a PNG in the “old style”.
Workbook book = new Workbook();
book.open(“MyBook.xlsx”);
Worksheet sheet = book.getWorksheets().getSheet(0);
Chart chart = sheet.getCharts().getChart(0);
ImageOptions imgOpts = new ImageOptions();
imgOpts.setImageFormat(ImageFormat.PNG);
chart.toImage(“myChart.png”, imgOpts);
I hope this answers your question.
Cheers
Iain
Hi,
We have found issues with chart series. Once, we will fix them, we will update you here.
Hi,
Please download the latest version and read the release notes: Aspose.Cells for Java v7.0.0
Code:
workbook.setFileFormat(FileFormatType.XLSX);
Chart chart = charts.get(charts.add(…));
ImageOrPrintOptions opts…
chart.toImage(…);