private void Form1_FormClosed(object sender, FormClosedEventArgs e) { inputFileXls.Close(); outputFileXls.Close(); }
//Export and saves the chart in Excel Sheet #region XLsIO private void buttonXLsIO_Click(object sender, EventArgs e) { try { //Instantiate the spreadsheet creation engine. ExcelEngine excelEngine = new ExcelEngine(); //Instantiate the excel application object. IApplication application = excelEngine.Excel; //Set the default version as Excel 2007; application.DefaultVersion = ExcelVersion.Excel2007; exportFileName = fileName + ".xlsx"; //A new workbook with a worksheet is created. IWorkbook chartBook = application.Workbooks.Create(1); IWorksheet sheet = chartBook.Worksheets[0]; //Fill the worksheet by chart data. for (int i = 1; i <= 4; i++) { sheet.Range[i, 1].Number = this.chartControl1.Series[0].Points[i - 1].X; sheet.Range[i, 2].Number = this.chartControl1.Series[0].Points[i - 1].YValues[0]; } for (int i = 1; i <= 4; i++) { sheet.Range[i + 5, 1].Number = this.chartControl1.Series[1].Points[i - 1].X; sheet.Range[i + 5, 2].Number = this.chartControl1.Series[1].Points[i - 1].YValues[0]; } //Create a chart worksheet. IChart chart = chartBook.Charts.Add("Essential Chart"); //Specifies the title of the Chart. chart.ChartTitle = "Essential Chart"; //Initializes a new series instance and adds it to the series collection of the chart. IChartSerie series1 = chart.Series.Add(); //Specify the chart type of the series. series1.SerieType = ExcelChartType.Column_Clustered; //Specify the name of the series. This will be displayed as the text of the legend. series1.Name = "Sample Series"; //Specify the value ranges for the series. series1.Values = sheet.Range["B1:B5"]; //Specify the Category labels for the series. series1.CategoryLabels = sheet.Range["A1:A5"]; IChartSerie series2 = chart.Series.Add(); //Specify the chart type of the series. series2.SerieType = ExcelChartType.Column_Clustered; //Specify the name of the series. This will be displayed as the text of the legend. series2.Name = "Sample Series"; //Specify the value ranges for the series. series2.Values = sheet.Range["B6:B10"]; //Specify the Category labels for the series. series2.CategoryLabels = sheet.Range["A6:A10"]; //Makes the chart as active sheet. chart.Activate(); //Save the Chart book. chartBook.SaveAs(exportFileName); chartBook.Close(); ExcelUtils.Close(); OpenFile("XLsIO", exportFileName); System.Diagnostics.Process.Start(exportFileName); } catch (Exception ex) { this.toolStripStatusLabel1.Text = "Chart Export failed."; Console.WriteLine(ex.ToString()); } }