【发布时间】:2018-01-12 09:36:48
【问题描述】:
在我的 WPF 应用程序中,我已经将数据导出到 Excel 以将它们绘制在雷达图中,只是为了将此图表重新导入应用程序。我需要这样做以实时分析数据,并且使用 WPF 工具包我还无法创建雷达图(在我使用 Excel 之前,我花了很多时间寻找解决方案)。
我现在的问题是,我无法通过 C# 更改雷达图的水平轴。在 Excel 本身中,我可以通过设置图表选项来轻松做到这一点,但在我的代码中,我还不知道该怎么做,而且在调试中我没有找到任何图表项目,这告诉了我更多信息。到目前为止,我的代码如下:
Excel.Application application = new Excel.Application();
Excel.Workbook workbook = application.Workbooks.Open(fileName);
Excel.Worksheet worksheet = workbook.Worksheets[1] as Excel.Worksheet;
CreateData(worksheet, sortangle, sortmu);
// Add chart.
Excel.ChartObjects xlCharts = worksheet.ChartObjects() as Excel.ChartObjects;
Excel.ChartObject myChart = xlCharts.Add(120, 10, 300, 300) as Excel.ChartObject;
Excel.Chart chart = myChart.Chart;
chart.ChartType = Excel.XlChartType.xlRadar;
var scale_range = worksheet.get_Range("A1", "A" + sortangle.Count.ToString());
var data_range = worksheet.get_Range("B1", "B" + sortangle.Count.ToString());
chart.SetSourceData(data_range);
chart.HasLegend = false;
// Set chart properties.
chart.ChartWizard(Source: data_range);
所以我得到了这样的结果:
但是旋转轴需要缩放0到360度,导致我处理的数据存储了角度信息。
所以我尝试了查看其他 C# Excel 之类的问题,例如this one,添加不同的行,如 chart.SeriesCollection(1).XValues = scale_range; 或 chart.Axes(Excel.XlAxisType.xlValue).Source = scale_range;。即使将ChartWizard 更改为chart.ChartWizard(Source: data_range, SeriesLabels: scale_range);,我也没有走多远。
如有任何建议,我将不胜感激。
编辑:
通过检查您可能会看到的代码,scale_range 未使用 atm。我也尝试将它带入 data_range 项目,但随后我得到了两行。
【问题讨论】:
标签: c# wpf excel radar-chart