2013-02-11 63 views
1

我使用C#(interop)创建一个excel图表。我使用get_Range函数从Excel中的数据表中获取它。我正确地获取图表。但我没有得到传奇的名字旁边的图,它是未来的series0,系列1。我正在使用folowing代码。Excel图表 - 没有得到传奇

Range chartRange; 
    Object misValue = System.Reflection.Missing.Value; 
    ChartObjects xlCharts = (ChartObjects)sheet0.ChartObjects(Type.Missing); 
    ChartObject myChart = (ChartObject)xlCharts.Add(10, 70, 250, 250); 
    Chart chartPage = myChart.Chart; 
    Chart chartPage1 = myChart.Chart; 
    chartRange = sheet0.get_Range("$G$45:$G$54,$AT$45:$AT$54", misValue); 
    chartPage.SetSourceData(chartRange, misValue); 
    chartPage.ChartType = XlChartType.xlColumnClustered; 
    chartPage.Location(XlChartLocation.xlLocationAsNewSheet, "Chart"); 

我在get_Range方法中改变了什么以获取图表中的图例名称?

预先感谢您。

+0

我可能被误认为,但传说应该是图表,没有independet对象的元素。 要获取图例名称,只需遍历Chart.dataseries对象并获取它们的名称即可。 请注意:它从1开始到dataseries.count结束,从0开始不会产生错误,但会产生疯狂的结果。此外,您必须多次投射物体。 我无法提供示例代码,因为我的工作场所没有Visual Studio。 – 2013-02-11 09:29:13

+0

传奇即将到来,系列0,系列1。我想重命名它们。怎么样? – Sanju 2013-02-11 09:35:00

+0

重命名图表中的系列 - 也应该更新图例。 图例对象应该有一个名称属性 – 2013-02-12 08:02:00

回答

0

尝试遍历系列集合,并设置名字一个接一个。事情是这样的:

foreach (Series series in myChart.SeriesCollection()){ 
    series.Name = "MyName"; 
} 
0

一般数据排列,这样,如果该系列是成列的,数据的第一列具有全系列的X值,列的其余部分是Y值,和数据的第一行具有系列名称,这些名称显示在图例中。为确保Excel能够以这种方式解析数据,请确保左上角的单元格为空。使用整个范围,包括第一列中的X值和第一行中的系列名称作为SetSourceData中的图表范围。