Hi,
Tried the same code as mentioned below with the latest version of Aspose.Cells v 7.3.3.1, but still it is taking same time while using the chart.calculate method. The same works fine in version 7.0.2.2
using System;
using System.Collections.Generic;
using System.Drawing;
using System.Linq;
using System.Text;
using Aspose.Cells;
using Aspose.Cells.Charts;
using Aspose.Cells.Drawing;namespace PerfomanceIssue {
class Program {
static void Main(string[] args) {
Workbook test = new Workbook(@“C:\bin\testbook1.xlsx”);
Worksheet wrktest = test.Worksheets["__testsheet"];<span style="color:green;">//Adding a new worksheet to the Workbook object</span> <span style="color:blue;">int</span> sheetIndex = test.Worksheets.Add(<span style="color:#2b91af;">SheetType</span>.Chart); <span style="color:green;">//Obtaining the reference of the newly added worksheet by passing its sheet index</span> <span style="color:#2b91af;">Worksheet</span> worksheet = test.Worksheets[sheetIndex]; <span style="color:blue;">int</span> chartIndex = worksheet.Charts.Add(Aspose.Cells.Charts.<span style="color:#2b91af;">ChartType</span>.Line, 1, 1, 25, 30); <span style="color:green;">//Accessing the instance of the newly added chart</span> Aspose.Cells.Charts.<span style="color:#2b91af;">Chart</span> chart = worksheet.Charts[chartIndex]; <span style="color:green;">//Adding NSeries (chart data source) to the chart ranging from "A1" cell to "B4"</span> chart.NSeries.Add(<span style="color:#a31515;">"__testsheet!B2:GH168"</span>, <span style="color:blue;">true</span>); chart.NSeries.CategoryData = <span style="color:#a31515;">"__testsheet!A1:A168"</span>; chart.NSeries.SecondCatergoryData = <span style="color:#a31515;">"__testsheet!A1:A168"</span>; <span style="color:green;">////Setting the chart type of 2nd NSeries to display as line chart</span> chart.NSeries[0].Name = <span style="color:#a31515;">"Area One"</span>; <span style="color:blue;">for</span> (<span style="color:blue;">int</span> i = 0; i < 50; i++) { chart.NSeries[i].Type = Aspose.Cells.Charts.<span style="color:#2b91af;">ChartType</span>.LineStacked; chart.NSeries[i].Line.Weight = <span style="color:#2b91af;">WeightType</span>.HairLine; <span style="color:#2b91af;">DataLabels</span> datalabels = chart.NSeries[i].DataLabels; datalabels.ShowValue = <span style="color:blue;">false</span>; } chart.NSeries[10].Name = <span style="color:#a31515;">"Area Two"</span>; chart.NSeries[10].Type = Aspose.Cells.Charts.<span style="color:#2b91af;">ChartType</span>.Line; chart.NSeries[10].PlotOnSecondAxis = <span style="color:blue;">true</span>; chart.NSeries[10].Line.IsVisible = <span style="color:blue;">true</span>; chart.SecondCategoryAxis.IsVisible = <span style="color:blue;">true</span>; <span style="color:#2b91af;">Console</span>.WriteLine(<span style="color:#a31515;">"Applying Formatting ..."</span>); <span style="color:green;">//Formatting chart area </span> chart.PlotArea.Area.BackgroundColor = <span style="color:#2b91af;">Color</span>.White; chart.ChartArea.Area.BackgroundColor = <span style="color:#2b91af;">Color</span>.White; chart.PlotArea.Area.ForegroundColor = <span style="color:#2b91af;">Color</span>.White; chart.ChartArea.Area.ForegroundColor = <span style="color:#2b91af;">Color</span>.White; chart.Name = <span style="color:#a31515;">"Sample Sheet"</span>; chart.Title.Text = <span style="color:#a31515;">"Sample Chart"</span>; chart.SizeWithWindow = <span style="color:blue;">true</span>; chart.ValueAxis.IsAutomaticMajorUnit = <span style="color:blue;">true</span>; chart.SecondValueAxis.IsAutomaticMajorUnit = <span style="color:blue;">true</span>; chart.SecondValueAxis.IsVisible = <span style="color:blue;">true</span>; chart.ValueAxis.IsAutomaticMaxValue = <span style="color:blue;">true</span>; chart.SecondValueAxis.IsAutomaticMaxValue = <span style="color:blue;">true</span>; chart.Calculate(); <span style="color:green;">////Saving the Excel file</span> test.Save(<span style="color:#a31515;">@"c:\bin\test2.xlsx"</span>); } }
}
Attached is the sample datasheet
Hi,
Do you have an update on when the fix will be available for issue: CELLSNET-41082
Hi,
Hi,
Thanks for using Aspose.Cells.
Please try the new fix. As the number of series is too large, the performance is still very good. But the speed increased five times in the new fix.
Please download and try this fix: Aspose.Cells for .NET v7.3.3.4 and let us know your feedback.
The issues you have found earlier (filed as CELLSNET-41120) have been fixed in this update.
This message was posted using Notification2Forum from Downloads module by aspose.notifier.
Hi,
Hi,
Tried with the latest version and there is no improvement. Compare running the same code with version 7.0.2.2 and you will notice considerable performance difference.
Hi,
Please find attached the latest code file alomg with the excel used and time taken with the new Dll. With 7.0.2.2 it only takes 5 seconds while with 7.3.4.1, it takes 26 mins.
Sample code:
DateTime start = System.DateTime.Now;
Workbook test = new Workbook(@"e:\test2\Book1.xlsx");
Worksheet wrktest = test.Worksheets["__test"];
//Adding a new worksheet to the Workbook object
int sheetIndex = test.Worksheets.Add(SheetType.Chart);
//Obtaining the reference of the newly added worksheet by passing its sheet index
Worksheet worksheet = test.Worksheets[sheetIndex];
int chartIndex = worksheet.Charts.Add(Aspose.Cells.Charts.ChartType.Line, 1, 1, 25, 30);
//Accessing the instance of the newly added chart
Aspose.Cells.Charts.Chart chart = worksheet.Charts[chartIndex];
//Adding NSeries (chart data source) to the chart ranging from "A1" cell to "B4"
chart.NSeries.Add("__test!B2:AS4449", true);
chart.NSeries.CategoryData = "__test!A2:A4449";
chart.NSeries.SecondCatergoryData = "__test!A2:A4449";
////Setting the chart type of 2nd NSeries to display as line chart
chart.NSeries[0].Name = "Area One";
for (int i = 0; i < 43; i++)
{
chart.NSeries[i].Type = Aspose.Cells.Charts.ChartType.LineStacked;
chart.NSeries[i].Line.Weight = WeightType.HairLine;
DataLabels datalabels = chart.NSeries[i].DataLabels;
//datalabels.Text = "®Ù";
datalabels.ShowValue = false;
}
chart.NSeries[10].Name = "Area Two";
chart.NSeries[10].Type = Aspose.Cells.Charts.ChartType.Line;
chart.NSeries[10].PlotOnSecondAxis = true;
chart.NSeries[10].Line.IsVisible = true;
chart.SecondCategoryAxis.IsVisible = true;
Console.WriteLine("Applying Formatting ...");
//Formatting chart area
chart.PlotArea.Area.BackgroundColor = Color.White;
chart.ChartArea.Area.BackgroundColor = Color.White;
chart.PlotArea.Area.ForegroundColor = Color.White;
chart.ChartArea.Area.ForegroundColor = Color.White;
chart.Name = "Sample Sheet";
chart.Title.Text = "Sample Chart";
chart.SizeWithWindow = true;
chart.ValueAxis.IsAutomaticMajorUnit = true;
chart.SecondValueAxis.IsAutomaticMajorUnit = true;
chart.SecondValueAxis.IsVisible = true;
chart.ValueAxis.IsAutomaticMaxValue = true;
chart.SecondValueAxis.IsAutomaticMaxValue = true;
chart.Calculate();
////Saving the Excel file
test.Save(@"e:\test2\Test.xlsx", SaveFormat.Xlsx);
DateTime end = System.DateTime.Now;
Debug.WriteLine("start time :" + start);
Debug.WriteLine("end time :" + end);
Debug.WriteLine("time taken :" + (end - start));
Hi,
We have improved the performance for chart.Calculate() method.
Please download and try this fix: Aspose.Cells for .NET v7.3.4.3 and let us know your feedback.
The performance seems to have improved but still is is still not at par with the version 7.0.2.2 where it is taking the least time…
Hi,
Workbook test = new Workbook(@“e:\test2\Book1.xlsx”);
Worksheet wrktest = test.Worksheets["__test"];
//Adding a new worksheet to the Workbook object
int sheetIndex = test.Worksheets.Add(SheetType.Chart);
//Obtaining the reference of the newly added worksheet by passing its sheet index
Worksheet worksheet = test.Worksheets[sheetIndex];
int chartIndex = worksheet.Charts.Add(Aspose.Cells.Charts.ChartType.Line, 1, 1, 25, 30);
//Accessing the instance of the newly added chart
Aspose.Cells.Charts.Chart chart = worksheet.Charts[chartIndex];
//Adding NSeries (chart data source) to the chart ranging from “A1” cell to “B4”
chart.NSeries.Add("__test!B2:AS4449", true);
chart.NSeries.CategoryData = “__test!A2:A4449”;
chart.NSeries.SecondCatergoryData = “__test!A2:A4449”;
////Setting the chart type of 2nd NSeries to display as line chart
chart.NSeries[0].Name = “Area One”;
for (int i = 0; i < 43; i++)
{
chart.NSeries[i].Type = Aspose.Cells.Charts.ChartType.LineStacked;
chart.NSeries[i].Line.Weight = WeightType.HairLine;
DataLabels datalabels = chart.NSeries[i].DataLabels;
///datalabels.Text = “®Ù”;
datalabels.ShowValue = false;
}
chart.NSeries[10].Name = “Area Two”;
chart.NSeries[10].Type = Aspose.Cells.Charts.ChartType.Line;
chart.NSeries[10].PlotOnSecondAxis = true;
chart.NSeries[10].Line.IsVisible = true;
chart.SecondCategoryAxis.IsVisible = true;
Console.WriteLine(“Applying Formatting …”);
//Formatting chart area
chart.PlotArea.Area.BackgroundColor = Color.White;
chart.ChartArea.Area.BackgroundColor = Color.White;
chart.PlotArea.Area.ForegroundColor = Color.White;
chart.ChartArea.Area.ForegroundColor = Color.White;
chart.Name = “Sample Sheet”;
chart.Title.Text = “Sample Chart”;
chart.SizeWithWindow = true;
chart.ValueAxis.IsAutomaticMajorUnit = true;
chart.SecondValueAxis.IsAutomaticMajorUnit = true;
chart.SecondValueAxis.IsVisible = true;
chart.ValueAxis.IsAutomaticMaxValue = true;
chart.SecondValueAxis.IsAutomaticMaxValue = true;
chart.Calculate();
////Saving the Excel file
test.Save(@“e:\test2\Test.xlsx”, SaveFormat.Xlsx);
DateTime end = System.DateTime.Now;
Debug.WriteLine(“start time :” + start);
Debug.WriteLine(“end time :” + end);
Debug.WriteLine(“time taken :” + (end - start));
The issues you have found earlier (filed as CELLSNET-41082) have been fixed in this update.
This message was posted using Notification2Forum from Downloads module by aspose.notifier.
With 7.0.2.2 took 19 sec. & 7.3.4.3 took 40 sec.
We are expecting the performance as in 7.0.2.2
Regards
Arihant
Hi Arihant,
Hi,
Thanks for your posting and using Aspose.Cells for Java.
Please try the new fix Aspose.Cells for .NET v7.3.5.2. The performance improve eighty percent. But that still is slower than 7.0.2.2.
In the latest version, we need to calculate the position for the points of series. In the template file that you posted, the speed is slow as the points are large in the chart.
If the new fix is still too slow for you, we may provide a new method that will recover to 7.0.2.2.