/// <summary> /// Saves the state for undoing the command or operation. /// </summary> public void SaveState() { List <SpreadChart> list = new List <SpreadChart>(); List <FloatingObject> list2 = new List <FloatingObject>(); List <Picture> list3 = new List <Picture>(); foreach (string str in _deleteExtent.Names) { SpreadChart chart = _worksheet.FindChart(str); if (chart != null) { list.Add(chart); } else { Picture picture = _worksheet.FindPicture(str); if (picture != null) { list3.Add(picture); } else { FloatingObject obj2 = _worksheet.FindFloatingObject(str); if (obj2 != null) { list2.Add(obj2); } } } } _savedCharts = list.ToArray(); _savedPictures = list3.ToArray(); _savedObjects = list2.ToArray(); }
void AddNewChart(object sender, RoutedEventArgs e) { if (_excel.ActiveSheet.Selections.Count == 0) { Kit.Msg("请选择单元格区域!"); return; } CellRange range = _excel.ActiveSheet.Selections[0]; if (range.Row < 0 || range.Column < 0) { Kit.Msg("单元格区域无效!"); return; } string rangeFormula = _excel.ActiveSheet.Cells[range.Row, range.Column, range.RowCount + range.Row - 1, range.ColumnCount + range.Column - 1].ToString(_excel.ActiveSheet.Cells[0, 0]); rangeFormula = "'" + _excel.ActiveSheet.Name + "'!" + rangeFormula; SpreadChartType chartType = (SpreadChartType)Enum.Parse(typeof(SpreadChartType), (string)_cbTypes.SelectedItem, false); //SpreadChart chart = _excel.ActiveSheet.AddChart("CustomChart" + customChartIndex.ToString(), chartType, rangeFormula, 10, 10, 400, 290); SpreadChart chart = _excel.ActiveSheet.AddChart("CustomChart" + customChartIndex.ToString(), chartType, rangeFormula, 10, 0, 10, 0, 400, 290); _excel.ActiveSheet.ChartSelectionChanged += ChartSelectionChanged; chart.ChartTitle = new ChartTitle(); chart.ChartTitle.Text = chartType.ToString(); chart.IsSelected = true; customChartIndex++; }
void MeasureCharts() { var charts = ActiveSheet.Charts; if (charts.Count == 0) { if (_cachedCharts.Count > 0) { _cachedCharts.Clear(); } return; } var oldCharts = _cachedCharts; _cachedCharts = new Dictionary <string, SpreadChartContainer>(); FloatingObjectLayoutModel layoutModel = ParentViewport.Excel.GetViewportFloatingObjectLayoutModel(RowViewportIndex, ColumnViewportIndex); for (int i = 0; i < charts.Count; i++) { SpreadChartContainer container; SpreadChart chart = charts[i]; if (!oldCharts.TryGetValue(chart.Name, out container)) { container = new SpreadChartContainer(chart, new Chart(), ParentViewport); int maxZIndex = GetMaxZIndex(); Canvas.SetZIndex(container, maxZIndex + 1); Children.Add(container); } else { oldCharts.Remove(chart.Name); } _cachedCharts.Add(chart.Name, container); Size size = _szEmpty; FloatingObjectLayout layout = layoutModel.Find(chart.Name); if (layout != null) { double num3 = 7.0; size = new Size(layout.Width + (2.0 * num3), layout.Height + (2.0 * num3)); } #if !IOS container.InvalidateMeasure(); #endif container.Measure(size); } if (oldCharts.Count > 0) { foreach (var item in oldCharts) { Children.Remove(item.Value); } } }
/// <summary> /// Defines the method to be called when the action is invoked. /// </summary> /// <param name="parameter">Data used by the action. If the action does not require data to be passed, this object can be set to null.</param> public override void Execute(object parameter) { if (CanExecute(parameter)) { Excel excel = parameter as Excel; try { excel.SuspendFloatingObjectsInvalidate(); SaveState(); for (int i = 0; i < _deleteExtent.Names.Length; i++) { string name = _deleteExtent.Names[i]; SpreadChart chart = _worksheet.FindChart(name); if (chart != null) { _worksheet.RemoveChart(name); chart.IsSelected = false; } else { Picture picture = _worksheet.FindPicture(name); if (picture != null) { _worksheet.RemovePicture(name); picture.IsSelected = false; } else { FloatingObject obj2 = _worksheet.FindFloatingObject(name); if (obj2 != null) { _worksheet.RemoveFloatingObject(name); obj2.IsSelected = false; } } } } } finally { excel.ResumeFloatingObjectsInvalidate(); ReadOnlyCollection <CellRange> selections = _worksheet.Selections; if (selections.Count != 0) { foreach (CellRange range in selections) { excel.UpdateHeaderCellsState(range.Row, range.RowCount, range.Column, range.ColumnCount); } } } excel.InvalidateFloatingObjectLayout(); } }
void _excel_ActiveSheetChanged(object sender, EventArgs e) { if (_excel.ActiveSheet.Charts == null || _excel.ActiveSheet.Charts.Count == 0) { return; } foreach (var item in _excel.ActiveSheet.Charts) { if (item.IsSelected) { _selectedChart = item; ChangeChartTypeSilent(); return; } } _selectedChart = _excel.ActiveSheet.Charts[0]; ChangeChartTypeSilent(); }
void InitChartTitle() { int sheetCount = _excel.SheetCount; SpreadChart chart = null; for (int i = 0; i < sheetCount; i++) { var sheet = _excel.Sheets[i]; sheet.ChartSelectionChanged += ChartSelectionChanged; int chartCount = sheet.Charts.Count; for (int j = 0; j < chartCount; j++) { chart = sheet.Charts[j]; chart.ChartTitle = new ChartTitle(); chart.ChartTitle.Text = chart.ChartType.ToString(); } } }
/// <summary> /// 添加图表 /// </summary> /// <param name="p_range"></param> SpreadChart AddChart(CellRange p_range) { Worksheet sheet = _excel.ActiveSheet; Rect rc = sheet.GetRangeLocation(p_range); string rangeFormula = sheet.Cells[p_range.Row, p_range.Column, p_range.RowCount + p_range.Row - 1, p_range.ColumnCount + p_range.Column - 1].ToString(this.Excel.ActiveSheet.Cells[0, 0]); rangeFormula = "'" + sheet.Name + "'!" + rangeFormula; SpreadChart chart = sheet.AddChart("table" + Kit.NewGuid, SpreadChartType.ColumnClustered, rangeFormula, rc.Left, rc.Top + rc.Height + 8, 600, 300); chart.Legend.Orientation = Orientation.Vertical; StringBuilder builder = new StringBuilder("chart"); builder.Append(sheet.Charts.Count.ToString()).Append("!"); builder.Append(p_range.Row.ToString()).Append(",").Append(p_range.Column.ToString()).Append(","); builder.Append(p_range.RowCount.ToString()).Append(",").Append(p_range.ColumnCount.ToString()); chart.Name = builder.ToString(); chart.PropertyChanged += OnPropertyChanged; chart.IsSelected = true; sheet.SetActiveCell(0, 0, true); return(chart); }
/// <summary> /// 当选中图表的时候,显示图表数据范围,不选中不显示。 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void OnPropertyChanged(object sender, PropertyChangedEventArgs e) { if (e.PropertyName == "IsSelected") { SpreadChart chart = sender as SpreadChart; if (chart == null) { return; } Worksheet sheet = _excel.ActiveSheet; string[] Position = chart.Name.Substring(chart.Name.IndexOf("!") + 1).Split(','); if (Position.Length != 4) { return; } CellRange range = new CellRange(int.Parse(Position[0]), int.Parse(Position[1]), int.Parse(Position[2]), int.Parse(Position[3])); if (!range.IsValidRange(sheet)) { return; } _excel.DecorationRange = chart.IsSelected ? range : null; } }
internal Wall(SpreadChart owner) : base(owner) { this._thickness = 1; }
/// <summary> /// Initializes a new instance of the <see cref="T:Dt.Cells.UndoRedo.ChangeChartTypeAction" /> class. /// </summary> /// <param name="chart">The chart.</param> /// <param name="newType">The new type.</param> public ChangeChartTypeAction(SpreadChart chart, SpreadChartType newType) { _chart = chart; _oldType = chart.ChartType; _newType = newType; }
internal AxisCollection(SpreadChart chart, ChartArea area) : base(chart, area) { }
internal PlotAreaCollection(SpreadChart chart, ChartArea area) : base(chart, area) { }
/// <summary> /// Defines the method to be called when the action is invoked. /// </summary> /// <param name="parameter">Data used by the action. If the action does not require data to be passed, this object can be set to null.</param> public override void Execute(object parameter) { if (CanExecute(parameter)) { Excel view = parameter as Excel; try { view.SuspendFloatingObjectsInvalidate(); SaveState(); List <SpreadChart> list = new List <SpreadChart>(); List <Picture> list2 = new List <Picture>(); List <FloatingObject> list3 = new List <FloatingObject>(); foreach (string str in _movingExtent.Names) { SpreadChart chart = _worksheet.FindChart(str); Picture picture = _worksheet.FindPicture(str); FloatingObject obj2 = _worksheet.FindFloatingObject(str); FloatingObject pastedObject = null; if (chart != null) { SpreadChart item = chart.Clone() as SpreadChart; pastedObject = item; item.Location = new Point(chart.Location.X + _movingExtent.OffsetX, chart.Location.Y + _movingExtent.OffsetY); item.Size = chart.Size; item.Name = Dt.Cells.UndoRedo.GenerateNameHelper.GenerateChartName(_worksheet); chart.IsSelected = false; item.IsSelected = true; list.Add(item); view.ActiveSheet.Charts.Add(item); } if (picture != null) { Picture picture2 = picture.Clone() as Picture; pastedObject = picture2; picture2.Location = new Point(picture.Location.X + _movingExtent.OffsetX, picture.Location.Y + _movingExtent.OffsetY); picture2.Size = picture.Size; picture2.Name = Dt.Cells.UndoRedo.GenerateNameHelper.GeneratePictureName(_worksheet); picture.IsSelected = false; picture2.IsSelected = true; list2.Add(picture2); view.ActiveSheet.Pictures.Add(picture2); } if (obj2 != null) { FloatingObject obj4 = obj2.Clone() as FloatingObject; pastedObject = obj4; obj4.Location = new Point(obj2.Location.X + _movingExtent.OffsetX, obj2.Location.Y + _movingExtent.OffsetY); obj4.Size = obj2.Size; obj4.Name = Dt.Cells.UndoRedo.GenerateNameHelper.GenerateFloatingObjectName(_worksheet); obj2.IsSelected = false; obj4.IsSelected = true; list3.Add(obj4); view.ActiveSheet.FloatingObjects.Add(obj4); } if (pastedObject != null) { view.RaiseFloatingObjectPasted(_worksheet, pastedObject); } } if (list.Count > 0) { _savedCharts = list.ToArray(); } if (list2.Count > 0) { _savedPictures = list2.ToArray(); } if (list3.Count > 0) { _savedObjects = list3.ToArray(); } } finally { view.ResumeFloatingObjectsInvalidate(); } view.InvalidateFloatingObjectLayout(); } }
/// <summary> /// Initializes a new instance of the <see cref="T:Dt.Cells.Data.ChartChangedEventArgs" /> class. /// </summary> /// <param name="chart">The chart.</param> /// <param name="chartArea">The chart area.</param> /// <param name="property">The property.</param> public ChartChangedEventArgs(SpreadChart chart, ChartArea chartArea, string property) : base(chart, chartArea, property) { }
public SpreadChartContainer(SpreadChart spreadChart, Chart c1Chart, CellsPanel parentViewport) : base(spreadChart, c1Chart, parentViewport) { }
/// <summary> /// 输出图表 /// </summary> /// <param name="p_ws"></param> /// <param name="p_row"></param> /// <param name="p_col"></param> public void Render(Worksheet p_ws, int p_row, int p_col) { if (!ValidFilds()) { return; } Rect rc = p_ws.GetRangeLocation(new CellRange(p_row, p_col, RowSpan, ColSpan)); var chartType = GetChartType(); SpreadChart c = p_ws.AddChart("chart" + p_ws.Charts.Count.ToString(), chartType, rc.Left, rc.Top, rc.Width, rc.Height); // 锁定图表,禁止拖动缩放 c.Locked = true; string title = _data.Str("title"); if (!string.IsNullOrEmpty(title)) { c.ChartTitle = new ChartTitle { Text = title } } ; title = _data.Str("titlex"); if (!string.IsNullOrEmpty(title)) { c.AxisX.Title = new ChartTitle { Text = title } } ; title = _data.Str("titley"); if (!string.IsNullOrEmpty(title)) { c.AxisY.Title = new ChartTitle { Text = title } } ; if (ShowLegend) { c.Legend.Text = _data.Str("legtitle"); if (Enum.TryParse <Dt.Charts.LegendPosition>(_data.Str("legpos"), out var pos)) { c.Legend.Alignment = GetLegendAlignment(pos); } if (Enum.TryParse <Orientation>(_data.Str("legorientation"), out var ori)) { c.Legend.Orientation = ori; } } else { c.Legend = null; } if (string.IsNullOrEmpty(FieldSeries)) { LoadTable(c); } else { LoadMatrix(c); } } void LoadMatrix(SpreadChart p_chart) { // Build()中已判断空的情况 RptData data = _part.Inst.Info.GetData(Tbl).Result; var tbl = data.Data.CreateMatrix(FieldX, FieldSeries, FieldY); for (int i = 0; i < tbl.Columns.Count; i++) { string colName = tbl.Columns[i].ID; if (colName == FieldX) { continue; } SpreadDataSeries ser = new SpreadDataSeries(); ser.Name = colName; DoubleSeriesCollection vals = new DoubleSeriesCollection(); foreach (var row in tbl) { try { double val = row.Double(i); vals.Add(val); } catch { vals.Add(0); } } ser.Values = vals; p_chart.DataSeries.Add(ser); } // 添加系列数据时已创建x轴Items,只能重新设置x轴 p_chart.AxisX.Items.Clear(); for (int i = 0; i < tbl.Count; i++) { p_chart.AxisX.Items.Add(tbl[i].Str(FieldX)); } } void LoadTable(SpreadChart p_chart) { RptData data = _part.Inst.Info.GetData(Tbl).Result; SpreadDataSeries ser = new SpreadDataSeries(); DoubleSeriesCollection vals = new DoubleSeriesCollection(); foreach (var row in data.Data) { try { double val = row.Double(FieldY); vals.Add(val); } catch { vals.Add(0); } } ser.Values = vals; p_chart.DataSeries.Add(ser); p_chart.AxisX.Items.Clear(); foreach (var row in data.Data) { p_chart.AxisX.Items.Add(row.Str(FieldX)); } } /// <summary> /// 判断数据表字段是否完整 /// </summary> /// <returns></returns> bool ValidFilds() { if (string.IsNullOrEmpty(Tbl)) { Kit.Msg("数据源不可为空。"); return(false); } string type = _data.Str("type"); if (type == "Gantt") { if (string.IsNullOrEmpty(FieldZ) || string.IsNullOrEmpty(FieldX) || string.IsNullOrEmpty(FieldY)) { Kit.Msg("任务字段、起始时间字段及终止时间字段均不可为空,图表生成失败。"); return(false); } } else { if (string.IsNullOrEmpty(FieldX) || string.IsNullOrEmpty(FieldY)) { Kit.Msg("分类字段和值字段不可为空,图表生成失败。"); return(false); } } return(true); } SpreadChartType GetChartType() { if (Enum.TryParse <ChartType>(_data.Str("type"), out var tp)) { switch (tp) { case ChartType.Bar: return(SpreadChartType.BarClustered); case ChartType.BarStacked: return(SpreadChartType.BarStacked); case ChartType.Column: return(SpreadChartType.ColumnClustered); case ChartType.ColumnStacked: return(SpreadChartType.ColumnStacked); case ChartType.Line: return(SpreadChartType.Line); case ChartType.LineSmoothed: return(SpreadChartType.LineSmoothed); case ChartType.LineStacked: return(SpreadChartType.LineStacked); case ChartType.LineSymbols: return(SpreadChartType.LineWithMarkers); case ChartType.LineSymbolsSmoothed: return(SpreadChartType.LineWithMarkersSmoothed); case ChartType.LineSymbolsStacked: return(SpreadChartType.LineStackedWithMarkers); case ChartType.Pie: return(SpreadChartType.Pie); case ChartType.PieExploded: return(SpreadChartType.PieExploded); case ChartType.PieDoughnut: return(SpreadChartType.PieDoughnut); case ChartType.PieExplodedDoughnut: return(SpreadChartType.PieExplodedDoughnut); case ChartType.Area: return(SpreadChartType.Area); case ChartType.AreaStacked: return(SpreadChartType.AreaStacked); case ChartType.AreaStacked100pc: return(SpreadChartType.AreaStacked); case ChartType.Radar: return(SpreadChartType.Radar); case ChartType.RadarSymbols: return(SpreadChartType.RadarWithMarkers); case ChartType.RadarFilled: return(SpreadChartType.RadarFilled); case ChartType.XYPlot: return(SpreadChartType.Scatter); case ChartType.Bubble: return(SpreadChartType.Bubble); case ChartType.Candle: return(SpreadChartType.StockHighLowOpenClose); } } return(SpreadChartType.ColumnClustered); } LegendAlignment GetLegendAlignment(Charts.LegendPosition pos) { switch (pos) { case Charts.LegendPosition.TopLeft: return(LegendAlignment.TopLeft); case Charts.LegendPosition.TopRight: return(LegendAlignment.TopRight); case Charts.LegendPosition.TopCenter: return(LegendAlignment.TopCenter); case Charts.LegendPosition.Left: return(LegendAlignment.MiddleLeft); case Charts.LegendPosition.Right: return(LegendAlignment.MiddleRight); case Charts.LegendPosition.BottomLeft: return(LegendAlignment.BottomLeft); case Charts.LegendPosition.BottomCenter: return(LegendAlignment.BottomCenter); case Charts.LegendPosition.BottomRight: return(LegendAlignment.BottomRight); } return(LegendAlignment.BottomCenter); }
/// <summary> /// Initializes a new instance of the <see cref="T:Dt.Cells.Data.ChartSelectionChangedEventArgs" /> class. /// </summary> /// <param name="chart">The chart.</param> public ChartSelectionChangedEventArgs(SpreadChart chart) { this.Chart = chart; }
internal Legend(SpreadChart owner) : base(owner) { this._alignment = LegendAlignment.MiddleRight; }
private void updateSpreadChart(double period1, double period2) { SpreadChart.Clear(); SpreadChart.Plot((period1, period2)); }
void ChartSelectionChanged(object sender, ChartSelectionChangedEventArgs e) { _selectedChart = e.Chart; ChangeChartTypeSilent(); }
void InitChart() { _excel.SheetCount = 9; object[,] values = { { "", "North", "South", "East", "West" }, { "s1", 50, 25, 55, 30 }, { "s2", 92, 24, 15, 24 }, { "s3", 65, 26, 70, 60 }, { "s4", 24, 80, 26, 20 } }; _excel.Sheets[0].SetArray(0, 0, values); _excel.Sheets[0].Name = "Column"; _excel.Sheets[0].AddChart("Chart1", SpreadChartType.ColumnClustered, "Column!$A$1:$E$5", 30, 120, 400, 290); _excel.Sheets[0].AddChart("Chart2", SpreadChartType.ColumnStacked, "Column!$A$1:$E$5", 480, 120, 400, 290); _excel.Sheets[0].AddChart("Chart3", SpreadChartType.ColumnStacked100pc, "Column!$A$1:$E$5", 30, 440, 400, 290); _excel.Sheets[1].Name = "Line"; _excel.Sheets[1].SetArray(0, 0, values); _excel.Sheets[1].AddChart("chart1", SpreadChartType.Line, "Line!$A$1:$E$5", 30, 120, 400, 290); _excel.Sheets[1].AddChart("chart2", SpreadChartType.LineSmoothed, "Line!$A$1:$E$5", 480, 120, 400, 290); _excel.Sheets[1].AddChart("chart3", SpreadChartType.LineStacked, "Line!$A$1:$E$5", 30, 440, 400, 290); _excel.Sheets[1].AddChart("chart4", SpreadChartType.LineStacked100pc, "Line!$A$1:$E$5", 480, 440, 400, 290); _excel.Sheets[1].AddChart("chart5", SpreadChartType.LineStacked100pcWithMarkers, "Line!$A$1:$E$5", 30, 760, 400, 290); _excel.Sheets[1].AddChart("chart6", SpreadChartType.LineStackedWithMarkers, "Line!$A$1:$E$5", 480, 760, 400, 290); _excel.Sheets[1].AddChart("chart7", SpreadChartType.LineWithMarkers, "Line!$A$1:$F$5", 30, 1080, 400, 290); _excel.Sheets[1].AddChart("chart8", SpreadChartType.LineWithMarkersSmoothed, "Line!$A$1:$E$5", 480, 1080, 400, 290); _excel.Sheets[2].Name = "Pie"; _excel.Sheets[2].SetArray(0, 0, values); _excel.Sheets[2].AddChart("chart1", SpreadChartType.Pie, "Pie!$A$1:$E$5", 30, 120, 400, 290); _excel.Sheets[2].AddChart("chart2", SpreadChartType.PieDoughnut, "Pie!$A$1:$E$5", 480, 120, 400, 290); _excel.Sheets[2].AddChart("chart3", SpreadChartType.PieExploded, "Pie!$A$1:$E$5", 30, 440, 400, 290); _excel.Sheets[2].AddChart("chart4", SpreadChartType.PieExplodedDoughnut, "Line!$A$1:$E$5", 480, 760, 400, 290); _excel.Sheets[3].Name = "Bar"; _excel.Sheets[3].SetArray(0, 0, values); _excel.Sheets[3].AddChart("chart1", SpreadChartType.BarClustered, "Bar!$A$1:$E$5", 30, 120, 400, 290); _excel.Sheets[3].AddChart("chart2", SpreadChartType.BarStacked, "Bar!$A$1:$E$5", 480, 120, 400, 290); _excel.Sheets[3].AddChart("chart3", SpreadChartType.BarStacked100pc, "Bar!$A$1:$E$5", 30, 440, 400, 290); _excel.Sheets[4].Name = "Area"; _excel.Sheets[4].SetArray(0, 0, values); _excel.Sheets[4].AddChart("chart1", SpreadChartType.Area, "Area!$A$1:$E$5", 30, 120, 400, 290); _excel.Sheets[4].AddChart("chart2", SpreadChartType.AreaStacked, "Area!$A$1:$E$5", 480, 120, 400, 290); _excel.Sheets[4].AddChart("chart3", SpreadChartType.AreaStacked100pc, "Area!$A$1:$E$5", 30, 440, 400, 290); object[,] values1 = { { "", "North", "South", "East", "West", "Northeast" }, { "s1", 384, 246, 549, 260, 260 }, { "s2", 926, 146, 1501, 240, 650 }, { "s3", 650, 260, 700, 600, 428 }, { "s4", 240, 80, 260, 1100, 268 } }; _excel.Sheets[5].Name = "Scatter"; _excel.Sheets[5].SetArray(0, 0, values1); _excel.Sheets[5].AddChart("chart1", SpreadChartType.Scatter, "Scatter!$A$1:$E$5", 30, 120, 400, 290); _excel.Sheets[5].AddChart("chart2", SpreadChartType.ScatterLines, "Scatter!$A$1:$E$5", 480, 120, 400, 290); _excel.Sheets[5].AddChart("chart3", SpreadChartType.ScatterLinesSmoothed, "Scatter!$A$1:$E$5", 30, 440, 400, 290); _excel.Sheets[5].AddChart("chart4", SpreadChartType.ScatterLinesSmoothedWithMarkers, "Scatter!$A$1:$E$5", 480, 440, 400, 290); _excel.Sheets[5].AddChart("chart5", SpreadChartType.ScatterLinesWithMarkers, "Scatter!$A$1:$E$5", 30, 760, 400, 290); _excel.Sheets[6].Name = "Bubble"; _excel.Sheets[6].SetArray(0, 0, values1); _excel.Sheets[6].AddChart("chart1", SpreadChartType.Bubble, "Bubble!$A$1:$E$5", 30, 120, 380, 260); object[,] values2 = { { "", new DateTime(2013, 8, 1), new DateTime(2013, 8, 2), new DateTime(2013, 8, 3), new DateTime(2013, 8, 4), new DateTime(2013, 8, 5) }, { "Open", 864, 279, 825, 360,384 }, { "High", 926, 612, 865, 562,650 }, { "Low", 380, 146, 501, 310,260 }, { "Close", 650, 560, 786, 486, 428 } }; _excel.Sheets[7].Name = "Stock"; _excel.Sheets[7].SetArray(0, 0, values2); _excel.Sheets[7].Rows[0].Formatter = new GeneralFormatter("MM/DD"); _excel.Sheets[7].AddChart("chart1", SpreadChartType.StockHighLowOpenClose, "Stock!$A$1:$E$5", 30, 120, 400, 290); _excel.Sheets[8].Name = "Radar"; _excel.Sheets[8].SetArray(0, 0, values); _excel.Sheets[8].AddChart("chart1", SpreadChartType.Radar, "Radar!$A$1:$E$5", 30, 120, 400, 290); _excel.Sheets[8].AddChart("chart2", SpreadChartType.RadarFilled, "Radar!$A$1:$E$5", 480, 120, 400, 290); _excel.Sheets[8].AddChart("chart3", SpreadChartType.RadarWithMarkers, "Radar!$A$1:$E$5", 30, 440, 400, 290); _excel.ActiveSheetChanged += _excel_ActiveSheetChanged; _selectedChart = _excel.ActiveSheet.Charts[0]; }
internal PlotArea(SpreadChart owner) : base(owner) { }