Sample code and excel attached
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Aspose.Cells;
using Aspose.Cells.Charts;
using Aspose.Cells.Drawing;
using System.Drawing;
namespace AsposeSampleProject
{
class Program
{
static void Main(string[] args)
{
Workbook wb = new Workbook(@"C:\Working\2\testData.xlsx");
Worksheet wrktest = wb.Worksheets["__ifnet"];
//Adding a new worksheet to the Workbook object
int sheetIndex = wb.Worksheets.Add(SheetType.Chart);
//Obtaining the reference of the newly added worksheet by passing its sheet index
Worksheet worksheet = wb.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];
Cells cell = wrktest.Cells;
//Adding NSeries (chart data source) to the chart ranging from "A1" cell to "B4"
chart.NSeries.Add("__ifnet!B2:E10", true);
chart.NSeries.CategoryData = "__ifnet!A2:A10";
chart.NSeries.SecondCatergoryData = "__ifnet!A2:A10";
int i;
for ( i = 0; i < 3; i++)
{
string index = ((char)(66 + i)).ToString() + "1";
chart.NSeries[i].Name = cell[index].Value.ToString();
chart.NSeries[i].Type = Aspose.Cells.Charts.ChartType.Line;
chart.NSeries[i].Line.Weight = WeightType.HairLine;
DataLabels datalabels = chart.NSeries[i].DataLabels;
datalabels.ShowValue = false;
}
string cellindex = ((char)(66 + i)).ToString() + "1";
chart.NSeries[i].Name = cell[cellindex].Value.ToString();
chart.NSeries[i].Type = Aspose.Cells.Charts.ChartType.Line;
chart.NSeries[i].PlotOnSecondAxis = true;
chart.NSeries[i].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();
wb.Save(@"C:\Working\2\testDataResult.xlsx");
}
}
}
Hi,
I can notice the issue as pointed out in MS Excel, error is: “Excel found unreadable content…” I used your template file, here is the sample code: Sample code: Workbook wb = new Workbook(@“e:\test2\testData.xlsx”); //Template: https://forum.aspose.com/t/104760 Worksheet wrktest = wb.Worksheets[“__ifnet”]; //Adding a new worksheet to the Workbook object int sheetIndex = wb.Worksheets.Add(SheetType.Chart); //Obtaining the reference of the newly added worksheet by passing its sheet index Worksheet worksheet = wb.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]; Cells cell = wrktest.Cells; //Adding NSeries (chart data source) to the chart ranging from “A1” cell to “B4” chart.NSeries.Add(“__ifnet!B2:E10”, true); chart.NSeries.CategoryData = “__ifnet!A2:A10”; chart.NSeries.SecondCatergoryData = “__ifnet!A2:A10”; int i; for (i = 0; i < 3; i++) { string index = ((char)(66 + i)).ToString() + “1”; chart.NSeries[i].Name = cell[index].Value.ToString(); chart.NSeries[i].Type = Aspose.Cells.Charts.ChartType.Line; chart.NSeries[i].Line.Weight = WeightType.HairLine; DataLabels datalabels = chart.NSeries[i].DataLabels; datalabels.ShowValue = false; } string cellindex = ((char)(66 + i)).ToString() + “1”; chart.NSeries[i].Name = cell[cellindex].Value.ToString(); chart.NSeries[i].Type = Aspose.Cells.Charts.ChartType.Line; chart.NSeries[i].PlotOnSecondAxis = true; chart.NSeries[i].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(); wb.Save(@“e:\test2\testDataResult.xlsx”); When I open the output file into Ms Excel 2007, it gives me error.
I have logged a separate ticket with an id: CELLSNET-41120 for this issue. We will look into it soon.
Thank you.
Hi, We have fixed this issue. Please download and try this fix: Aspose.Cells for .NET v7.3.2.2 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 .
aryhant
October 29, 2012, 3:51am
14
Hi,
Do you have any updates on when will be the fix for issue CELLSNET-41082 available?
Regards
Arihant
Hi,
It should be fixed in the latest version/fix v7.3.3.
aryhant
October 29, 2012, 4:53am
16
Thanks for the update. But the issue 41082 is not mentioned in the announcement here:
Wanted to confirm if that is available.
Regards
Arihant
Hi,
The issue’s status is fixed, so we have requested you to kindly try our latest version/fix v7.3.3.x and let us know your feedback.
Thank you.
aryhant
November 7, 2012, 11:50pm
18
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
Code:
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
aryhant
November 19, 2012, 12:16am
20
Do you have an update on when the fix will be available for issue: CELLSNET-41082
Hi,
We are working over your issue and hopefully we can provide you a fix for your issue “CELLSNET-41082” within the next 2-3 days.
Sorry for any inconvenience caused!
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,
I have used the fix with your previous code and the performance is much better now.
Let us know your run results on how much time the process takes now using v7.3.4.1.
Thank you.
aryhant
November 29, 2012, 8:31am
26
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,
We tested and there are certain improvements in the latest versions/fix that is for sure. It takes about 10 seconds to process Chart.calculate() on my normal configured machine.
Could you create a separate console application using v7.3.4.1, zip it and post it here. Also provide us how much time (in milliseconds or seconds) it takes to complete the process. We will check it soon.
Thank you.
aryhant
November 30, 2012, 4:19am
28
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.
Hi,
Thanks for your sample code, template file and screen shot.
I can notice the issue using your sample code (given below) with your new template file you provided in you previous post. It takes very long time to process it. 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));
I have logged a separate ticket with an id: "CELLSNET-41228" for your issue. We will look into your issue soon.
Thank you.