private void BindChartToBindingList() { //Datasource implements IBindingList interface. bindList = new BindingList <PopulationData>(); bindList.Add(new PopulationData("Indonesia", 341)); bindList.Add(new PopulationData("India", 660)); bindList.Add(new PopulationData("USA", 595)); bindList.Add(new PopulationData("Nigeria", 248)); bindList.Add(new PopulationData("China", 806)); bindList.Add(new PopulationData("Bangladesh", 544)); ChartSeries series = new ChartSeries("Populations"); //Bind the above list to the chart control. ChartDataBindModel dataSeriesModel = new ChartDataBindModel(bindList); // If ChartDataBindModel.XName is empty or null, X value is index of point. dataSeriesModel.YNames = new string[] { "Population" }; series.SeriesModel = dataSeriesModel; UpdateChartLabels(); chartControl2.Series.Add(series); chartControl2.PrimaryXAxis.TickLabelsDrawingMode = ChartAxisTickLabelDrawingMode.UserMode; chartControl2.PrimaryXAxis.LabelIntersectAction = ChartLabelIntersectAction.MultipleRows; this.chartControl2.PrimaryYAxis.Range = new MinMaxInfo(120, 820, 200); }
/// <summary> /// Initializes chart data from XML. /// </summary> protected void InitializeXMLData() { //Initializes a new DataSet. DataSet xmlDataSet = new DataSet(); //Loads the dataset with xml data. xmlDataSet.ReadXmlSchema(WinFormsUtils.FindFile(@"..\..\..\..\..\..\Common\Data\Chart", "dataschema.xslt")); xmlDataSet.ReadXml(WinFormsUtils.FindFile(@"..\..\..\..\..\..\Common\Data\Chart", "data.xml")); //Initializes new chart series. ChartSeries series = new ChartSeries(); series.Name = tableName; model = new ChartDataBindModel(xmlDataSet, "Products"); model.XName = "ExpiresDate"; model.YNames = new string[] { "Quantity" }; series.SeriesModel = model; //Adds the series to the ChartSeriesCollection. this.chartControl1.Series.Add(series); //Specifies the value type of the Chart Axis. this.chartControl1.PrimaryXAxis.ValueType = ChartValueType.DateTime; //Specifies the format in which the Date-Time values display. this.chartControl1.PrimaryXAxis.DateTimeFormat = "MM/dd/yy"; //Specifies the mode of displaying the label of the x-axis on intersection. this.chartControl1.PrimaryXAxis.LabelIntersectAction = ChartLabelIntersectAction.MultipleRows; //Specifies the column width mode for the Column Type chart. this.chartControl1.ColumnWidthMode = ChartColumnWidthMode.FixedWidthMode; }
private void BindChartToArrayList() { // Data source implements IList or IListSource interface. //Create an array of PopulationData objects. ArrayList populations = new ArrayList(); populations.Add(new PopulationData("New York", 13)); populations.Add(new PopulationData("Houston", 11)); populations.Add(new PopulationData("Tokyo", 17)); populations.Add(new PopulationData("London", 12)); populations.Add(new PopulationData("Chicago", 10)); populations.Add(new PopulationData("Phoneix", 14)); ChartSeries series = new ChartSeries("Populations"); //Bind the above array to the chart control. ChartDataBindModel dataSeriesModel = new ChartDataBindModel(populations); // If ChartDataBindModel.XName is empty or null, X value is index of point. dataSeriesModel.YNames = new string[] { "Population" }; series.SeriesModel = dataSeriesModel; //Setup a datasource for chart axis and populate axis labels. ChartDataBindAxisLabelModel dataLabelsModel = new ChartDataBindAxisLabelModel(populations); dataLabelsModel.LabelName = "Name"; chartControl1.Series.Add(series); chartControl1.PrimaryXAxis.LabelsImpl = dataLabelsModel; }
void bindData() { ChartSeries line = new ChartSeries("test", ChartSeriesType.Line); ChartDataBindModel model = new ChartDataBindModel(chartSource, "Argument"); model.XName = "ID"; model.YNames = new string[] { "Value" }; line.SeriesModel = model; Chart.Series.Add(line); ChartDataBindAxisLabelModel dataLabelsModel = new ChartDataBindAxisLabelModel(chartSource); dataLabelsModel.LabelName = "Argument"; }
//This method binds the chart to a given datasource. private void BindChart(object populations) { this.chartControl1.Series.Clear(); ChartSeries series = new ChartSeries("Populations"); ChartDataBindModel dataSeriesModel = new ChartDataBindModel(populations); // If ChartDataBindModel.XName is empty or null, X value is index of point. dataSeriesModel.YNames = new string[] { "Population" }; series.SeriesModel = dataSeriesModel; series.Style.Border.Color = Color.Transparent; ChartDataBindAxisLabelModel dataLabelsModel = new ChartDataBindAxisLabelModel(populations); dataLabelsModel.LabelName = "City"; chartControl1.Series.Add(series); chartControl1.PrimaryXAxis.LabelsImpl = dataLabelsModel; }
/// <summary> /// Initializes chart data from Excel Sheet. /// </summary> protected void InitializeChartExcelData() { string fileName = WinFormsUtils.FindFile(@"..\..\..\..\..\..\Common\Data\Chart", "ChartData.xls"); //The Oledbconnection. OleDbConnection excelConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileName + ";Extended Properties=\"Excel 8.0;HDR=Yes;\""); excelConn.Open(); //Query for retriving the data from the excel sheet. string query = "Select * From [Sheet1$A1:B11]"; OleDbCommand excelCommand = new OleDbCommand(query, excelConn); OleDbDataReader excelReader = excelCommand.ExecuteReader(CommandBehavior.CloseConnection); //Load the contents to a dataset. DataSet excelDataSet = ConvertToDataSet(excelReader, "ExcelTable"); this.chartControl1.Indexed = true; //Initializes new chart series. ChartSeries series = new ChartSeries(); series.Name = tableName; series.Type = ChartSeriesType.Column; model = new ChartDataBindModel(excelDataSet, "ExcelTable"); model.XName = "X Value"; model.YNames = new string[] { "Y Value" }; series.SeriesModel = model; //Specifies the column width mode for the Column Type chart. this.chartControl1.ColumnWidthMode = ChartColumnWidthMode.FixedWidthMode; //Adds the series to the ChartSeriesCollection. this.chartControl1.Series.Add(series); //Close the connection. excelReader.Close(); excelConn.Close(); this.chartControl1.Text = "Chart Data From Excel"; }
/// <summary> /// Imports chart data from a CSV file. /// </summary> protected void InitializeChartFromCSV() { string fileName = WinFormsUtils.FindFile(@"..\..\..\..\..\..\Common\Data\Chart\", "ChartData.csv"); OleDbConnection csvConn = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Application.StartupPath + ";Extended Properties=\"Text;HDR=Yes;FMT=Delimited\""); csvConn.Open(); //Query for retriving the data from the csv file. string query = "Select * From " + fileName; OleDbCommand csvCommand = new OleDbCommand(query, csvConn); OleDbDataReader csvReader = csvCommand.ExecuteReader(CommandBehavior.CloseConnection); //Load the contents to a dataset. DataSet csvDataSet = ConvertToDataSet(csvReader, "CSVTable"); this.chartControl1.Indexed = true; //Initializes new chart series. ChartSeries series = new ChartSeries(); series.Style.DisplayText = true; series.Style.TextOrientation = ChartTextOrientation.Up; series.Name = tableName; model = new ChartDataBindModel(csvDataSet, "CSVTable"); model.XName = "X Value"; model.YNames = new string[] { "Y Value" }; series.SeriesModel = model; //Adds the series to the ChartSeriesCollection. this.chartControl1.Series.Add(series); ////Specifies the column width mode for the Column Type chart. this.chartControl1.ColumnWidthMode = ChartColumnWidthMode.FixedWidthMode; //Close the connection. csvReader.Close(); csvConn.Close(); }
private void InitializeChart() { string[] labels = { "Laptop", "Desktop", "Tablet", "Smartphone" }; Color[] colors = new Color[] { Color.FromArgb(252, 68, 15), Color.FromArgb(84, 199, 128), Color.FromArgb(6, 186, 248), Color.FromArgb(6, 112, 248) }; List <Points> data = new List <Points>(); Random r = new Random(); for (int i = 0; i < labels.Length; i++) { data.Add(new Points(labels[i], r.Next(1000, 10000))); } this.chartControl1.Series.Clear(); ChartSeries series = new ChartSeries("Series", ChartSeriesType.Column); ChartDataBindModel model = new ChartDataBindModel(data); model.YNames = new string[] { "Quantity" }; series.SeriesModel = model; this.chartControl1.Series.Add(series); for (int i = 0; i < colors.Length; i++) { series.Styles[i].Interior = new BrushInfo(colors[i]); } this.chartControl1.BackColor = Color.White; this.chartControl1.PrimaryXAxis.ForeColor = Color.Black; this.chartControl1.PrimaryYAxis.ForeColor = Color.Black; this.chartControl1.PrimaryXAxis.TickLabelsDrawingMode = ChartAxisTickLabelDrawingMode.UserMode; ChartDataBindAxisLabelModel labelModel = new ChartDataBindAxisLabelModel(data); labelModel.LabelName = "Product"; this.chartControl1.PrimaryXAxis.LabelsImpl = labelModel; series.PointsToolTipFormat = "Quantity:{4}"; series.FancyToolTip.Visible = false; series.FancyToolTip.BackColor = System.Drawing.Color.DeepSkyBlue; this.chartControl1.PrimaryXAxis.LabelRotate = false; this.chartControl1.PrimaryXAxis.LabelRotateAngle = 45; this.chartControl1.ChartInterior = new BrushInfo(Color.White); this.chartControl1.ShowLegend = false; this.chartControl1.TextAlignment = StringAlignment.Near; this.chartControl1.ForeColor = Color.Black; this.chartControl1.ChartToolTip = "Quantity"; }
protected void InitializeChart() { ChartSeries series = new ChartSeries(); series.Name = "Products"; series.Text = series.Name; ChartDataBindModel model = new ChartDataBindModel(this.prodDs1, "Products"); model.XName = "ExpiresDate"; model.YNames = new string[] { "Quantity" }; series.SeriesModel = model; series.Type = ChartSeriesType.Column; series.Style.Border.Color = Color.FromArgb(124, 83, 153); series.Style.DisplayShadow = false; this.chartControl1.Series.Add(series); DateTime start = DateTime.Now; DateTime end = start.AddMonths(3); this.chartControl1.PrimaryXAxis.DateTimeRange = new ChartDateTimeRange(start, end, 1, ChartDateTimeIntervalType.Months); }
protected void InitializeChartData() { this.chartControl1.Indexed = false; ChartSeries series = new ChartSeries(); series.Name = "Products"; series.Text = series.Name; model = new ChartDataBindModel(this.prodDs1, "Products"); model.XName = "Date"; model.YNames = new String[] { "Load" }; series.SeriesModel = model; series.Type = ChartSeriesType.Spline; series.Style.DisplayShadow = false; this.chartControl1.Series.Add(series); this.chartControl1.PrimaryXAxis.ValueType = ChartValueType.DateTime; this.chartControl1.PrimaryXAxis.DateTimeFormat = "dd-hh:mm tt"; this.chartControl1.PrimaryXAxis.RoundingPlaces = 12; this.chartControl1.PrimaryXAxis.RangeType = ChartAxisRangeType.Set; this.chartControl1.PrimaryXAxis.DateTimeRange = new ChartDateTimeRange(lastTime, lastTime.AddDays(1), 4, ChartDateTimeIntervalType.Hours); }
/// <summary> /// The GetDataBindingSource /// </summary> /// <param name="data">The data<see cref="Dictionary{string, double}"/></param> /// <param name="filter">The filter<see cref="Field"/></param> /// <returns>The <see cref="ChartDataBindModel"/></returns> internal ChartDataBindModel GetDataBindingSource(Dictionary <string, double> data, Field filter) { try { SortedList <string, double> chartdata = new SortedList <string, double>(); foreach (KeyValuePair <string, double> kvp in data) { chartdata.Add(kvp.Key, kvp.Value); } ChartDataBindModel model = new ChartDataBindModel(chartdata); model.YNames = new[] { filter.ToString() }; return(model); } catch (Exception ex) { new Error(ex).ShowDialog(); return(null); } }
/// <summary> /// Initializes chart data from access database. /// </summary> protected void InitializeChartData() { // The Access database string fileName = WinFormsUtils.FindFile(@"..\..\..\..\..\..\Common\Data\Chart", "ChartData.mdb"); string myConnectionString = "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileName; // Define the database query string mySelectQuery = "SELECT City, ID, Population FROM Demographics"; // Create a database connection object using the connection string OleDbConnection myConnection = new OleDbConnection(myConnectionString); // Create a database command on the connection using query OleDbCommand myCommand = new OleDbCommand(mySelectQuery, myConnection); myCommand.Connection.Open(); // Create a database reader OleDbDataReader myReader = myCommand.ExecuteReader(CommandBehavior.CloseConnection); //Load the contents into a dataset. DataSet dataSet = ConvertToDataSet(myReader, "Demographics"); //Initializes new chart series. ChartSeries series = new ChartSeries(); series.Style.DisplayText = true; series.Style.TextOrientation = ChartTextOrientation.Up; series.Name = "Products"; ChartDataBindModel model = new ChartDataBindModel(dataSet, "Demographics"); model.XName = "ID"; model.YNames = new string[] { "Population" }; series.SeriesModel = model; this.xAxisLabelModel = new ChartDataBindAxisLabelModel(dataSet, "Demographics"); this.xAxisLabelModel.LabelName = "City"; //Adds the series to the ChartSeriesCollection. this.chartControl1.Series.Add(series); this.xAxisLabelModel.PositionIndex = 1; this.chartControl1.PrimaryXAxis.TickLabelsDrawingMode = ChartAxisTickLabelDrawingMode.UserMode; //this.chartControl1.PrimaryXAxis.AutoValueType = false; this.chartControl1.PrimaryXAxis.LabelsImpl = this.xAxisLabelModel; this.chartControl1.PrimaryXAxis.CustomLabelsParameter = ChartCustomLabelsParameter.Position; //Specifies the mode of displaying the label of the x-axis on intersection. this.chartControl1.PrimaryXAxis.LabelIntersectAction = ChartLabelIntersectAction.MultipleRows; //Specifies the column width mode for the Column Type chart. // this.chartControl1.ColumnWidthMode = ChartColumnWidthMode.RelativeWidthMode; // Close the reader and the connection myReader.Close(); myConnection.Close(); //Turns off the legend. this.chartControl1.Legend.Visible = false; this.chartControl1.Text = "Highest populated cities in the world"; // this.chartControl1.Series3D = true; this.chartControl1.Spacing = 20; }
private void modernButton3_Click(object sender, EventArgs e) { Log("%TEST%"); var ew = new ExcelWindow("Test#3"); ew.spreadsheet1.Open("Data\\Test\\c5.xlsx"); ew.ShowDialog(); //ExcelOperator2 ex=new ExcelOperator2(ew.spreadsheet1); var s = ew.spreadsheet1.ActiveSheet; var l = s.ExportDataTable(s.UsedRange, ExcelExportDataTableOptions.ColumnNames | ExcelExportDataTableOptions.ComputedFormulaValues); //MessageBox.Show($"{l.Rows[0][0].ToString()}"); //ScoreTable st=new ScoreTable(new Dictionary<string, ScoreModel>(),new InputDataIndicator() ); List <ScoreModel> li = new List <ScoreModel>(); for (int j = 0; j < l.Rows.Count; j++) { ScoreModel sm = new ScoreModel(); for (int i = 0; i < l.Columns.Count; i++) { switch (i) { case 0: sm.Name = l.Rows[j][i].ToString(); break; case 1: sm.Id = Int32.Parse(l.Rows[j][i].ToString()); break; case 2: sm.SumRank = Int32.Parse(l.Rows[j][i].ToString()); break; case 3: sm.SumGradeRank = Int32.Parse(l.Rows[j][i].ToString()); break; case 4: sm.Zh = Single.Parse(l.Rows[j][i].ToString()); break; case 5: sm.ZhRank = Int32.Parse(l.Rows[j][i].ToString()); break; case 6: sm.ZhGradeRank = int.Parse(l.Rows[j][i].ToString()); break; case 7: sm.M = float.Parse(l.Rows[j][i].ToString()); break; case 8: sm.MRank = int.Parse(l.Rows[j][i].ToString()); break; case 9: sm.MGradeRank = int.Parse(l.Rows[j][i].ToString()); break; case 10: sm.En = float.Parse(l.Rows[j][i].ToString()); break; case 11: sm.EnRank = int.Parse(l.Rows[j][i].ToString()); break; case 12: sm.EnGradeRank = int.Parse(l.Rows[j][i].ToString()); break; case 13: sm.P = float.Parse(l.Rows[j][i].ToString()); break; case 14: sm.PRank = int.Parse(l.Rows[j][i].ToString()); break; case 15: sm.PGradeRank = int.Parse(l.Rows[j][i].ToString()); break; case 16: sm.C = float.Parse(l.Rows[j][i].ToString()); break; case 17: sm.CRank = int.Parse(l.Rows[j][i].ToString()); break; case 18: sm.CGradeRank = int.Parse(l.Rows[j][i].ToString()); break; case 19: sm.Po = float.Parse(l.Rows[j][i].ToString()); break; case 20: sm.PoRank = Int32.Parse(l.Rows[j][i].ToString()); break; case 21: sm.PoGradeRank = Int32.Parse(l.Rows[j][i].ToString()); break; case 22: sm.H = float.Parse(l.Rows[j][i].ToString()); break; case 23: sm.HRank = int.Parse(l.Rows[j][i].ToString()); break; case 24: sm.HGradeRank = int.Parse(l.Rows[j][i].ToString()); break; case 25: sm.G = float.Parse(l.Rows[j][i].ToString()); break; case 26: sm.GRank = int.Parse(l.Rows[j][i].ToString()); break; case 27: sm.GGradeRank = int.Parse(l.Rows[j][i].ToString()); break; case 28: sm.B = float.Parse(l.Rows[j][i].ToString()); break; case 29: sm.BRank = int.Parse(l.Rows[j][i].ToString()); break; case 30: sm.BGradeRank = int.Parse(l.Rows[j][i].ToString()); break; default: throw new NotImplementedException(); break; } } li.Add(sm); //MessageBox.Show($"%C# {name}%=>%JSON%:\r\n{sm.ToString()}"); } IList <(NfSubjects, float)> aveList = Analyzer.Average(li); //BindingList<(NfSubjects, float)> aveBindingList = Analyzer.Average(li);//todo; IList <(NfSubjects, float)> sumList = Analyzer.Sum(li); IList <(NfSubjects, float[])> modeList = Analyzer.Mode(li); IList <(NfSubjects, double)> midList = Analyzer.Mid(li); Log("Average:\r\n" + string.Join(",", aveList)); Log("Sum:\r\n" + string.Join(",", sumList)); Log("Mode:"); foreach (var mode in modeList) { Log($"{mode.Item1.ToString()}:{string.Join(",",mode.Item2)}"); } //Log("Mode:\r\n" + string.Join(",",modeList)); Log("Mid:\r\n" + string.Join(",", midList)); //MessageBox.Show(aveList[0].Item2.ToString()); DataVisualization dv = new DataVisualization(); dv.lDChartDataSourceBindingSource.DataSource = new LDChartDataSource(aveList); #region Data Convert: ChartSeries cs = new ChartSeries("%Title%"); ChartDataBindModel cdbm = new ChartDataBindModel(aveList); ChartDataBindAxisLabelModel cdbalm = new ChartDataBindAxisLabelModel(aveList); cdbm.XName = "Item1"; cdbalm.LabelName = "Item1"; cdbm.YNames = new String[] { "Item2" }; cs.SeriesModel = cdbm; dv.chartControl1.Series.Add(cs); dv.chartControl1.PrimaryXAxis.LabelsImpl = cdbalm; dv.chartControl2.Series.Add(cs); dv.chartControl2.PrimaryXAxis.LabelsImpl = cdbalm; dv.chartControl2.PrimaryYAxis.Range = new MinMaxInfo(0, 150, 100); #endregion dv.Show(); //#region PPT Output //IPresentation ip = Presentation.Create(); //IList<double> avelist_ppt=new List<double>(); //foreach (var ii in aveList) //{ // avelist_ppt.Add(ii.Item2); //} //ISlide sl = ip.Slides.Add(SlideLayoutType.Blank); //IPresentationChart ct = sl.Shapes.AddChart(avelist_ppt, 5, 5, 100, 100); //Spire.Presentation.Presentation ppt =new Spire.Presentation.Presentation(File.Open($"{new Random().Next()}.pptx",FileMode.Create,FileAccess.ReadWrite),FileFormat.Pptx2010); //var cts = ppt.Slides[0].Shapes.AppendChart(ChartType.Column3D,new RectangleF(5,5,200,200)); //foreach (var ave in avelist_ppt) //{ // //cts.Series.Append(ave); // cts.Series[0].Values.Add(ave); //} //ip.Save($"{new Random().Next()}.pptx"); //#endregion #region ExcelChart ExcelEngine ee = new ExcelEngine(); IApplication xls = ee.Excel; xls.DefaultVersion = Syncfusion.XlsIO.ExcelVersion.Excel2016; IWorkbook wb = xls.Workbooks.Open("Data\\Test\\c5.xlsx", ExcelOpenType.Automatic); IWorksheet ws = wb.Worksheets.Create("Chart"); IChartShape chart = ws.Charts.Add(); ///////////////////////////////////////////////////// //IChartSerie serie = chart.Series.Add(Syncfusion.XlsIO.ExcelChartType.Column_Clustered); //chart.ChartType = Syncfusion.XlsIO.ExcelChartType.Column_Clustered; IList <string> xave = new List <string>(); IList <object> yave = new List <object>(); int allavei = Int32.MaxValue, allmidi = Int32.MaxValue; for (var index = 0; index < aveList.Count; index++) { if (aveList[index].Item1 == NfSubjects.All) { allavei = index; } var ave = aveList[index]; xave.Add(ave.Item1.Name()); yave.Add(ave.Item2); } //serie.EnteredDirectlyValues = yave.ToArray(); //serie.Name = "平均分"; //serie.EnteredDirectlyCategoryLabels = xave.ToArray(); ChartGen.GenChart(chart, xave.ToArray(), yave.ToArray(), "平均分", ExcelChartType.Column_Clustered); //////////////////////////////////////////////// //IChartSerie seriemid = chart.Series.Add(Syncfusion.XlsIO.ExcelChartType.Column_Clustered); //chart.ChartType = Syncfusion.XlsIO.ExcelChartType.Column_Clustered; IList <string> xmid = new List <string>(); IList <object> ymid = new List <object>(); for (var index = 0; index < midList.Count; index++) { if (midList[index].Item1 == NfSubjects.All) { allmidi = index; } var mid = midList[index]; xmid.Add(mid.Item1.Name()); ymid.Add(mid.Item2); } ChartGen.GenChart(chart, xmid.ToArray(), ymid.ToArray(), "中位分", ExcelChartType.Column_Clustered); //{{{{{{{{{{{{{{ xave.RemoveAt(allavei); yave.RemoveAt(allavei); xmid.RemoveAt(allmidi); ymid.RemoveAt(allmidi); IChartShape leida = ws.Shapes.AddChart(); ChartGen.GenChart(leida, xave.ToArray(), yave.ToArray(), "平均分", ExcelChartType.Radar); ChartGen.GenChart(leida, xmid.ToArray(), ymid.ToArray(), "中位分", ExcelChartType.Radar); leida.Name = "学科成绩分布1"; leida.ChartTitle = "学科成绩分布1"; //}}}}}}}}}}}}}} //{{{{{{{{{{{{{{ var xyave = Analyzer.ReArrangeData(aveList); var xymid = Analyzer.ReArrangeData(midList); IChartShape leida2 = ws.Shapes.AddChart(); ChartGen.GenChart(leida2, xyave.Item1, xyave.Item2, "平均分", ExcelChartType.Radar); ChartGen.GenChart(leida2, xymid.Item1, xymid.Item2, "中位分", ExcelChartType.Radar); leida2.Name = "学科成绩分布2"; leida2.ChartTitle = "学科成绩分布2"; //}}}}}}}}}}}}}} var ordered = li.OrderBy(pp => pp.Sum); ChartGen.GenChart(ws.Shapes.AddChart(), ordered.Select(sm => (object)(sm.Name)).ToArray(), ordered.Select(sm => (object)(sm.Sum ?? 0)).ToArray(), "总分", ExcelChartType.Column_3D); //seriemid.EnteredDirectlyValues = ymid.ToArray(); //seriemid.Name = "中位分"; //seriemid.EnteredDirectlyCategoryLabels = xmid.ToArray(); ///////////////////////////////////////////////// xls.Save("output.xlsx"); wb.Close(); ee.Dispose(); #endregion }