Excel图表 - 没有传说

时间:2013-02-11 05:39:15

标签: c# .net excel excel-interop

我正在使用C#(interop)创建一个excel图表。我正在使用get_Range函数从excel中的数据表中获取它。我正确地得到了图表。但我没有得到图表旁边的 图例名称 ,它将作为series0,series1。我正在使用以下代码。

    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方法中改变了什么来获取图表中的图例名称?

提前谢谢。

2 个答案:

答案 0 :(得分:0)

尝试迭代系列集合并逐个设置名称。像这样:

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

答案 1 :(得分:0)

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