2013-02-11 51 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中的圖表範圍。