2013-02-11 2 views
1

C# (interop)을 사용하여 Excel 차트를 작성합니다. 나는 Excel에서 데이터 시트에서 그것을 얻기 위해 get_Range 함수를 사용하고 있습니다. 나는 그래프를 적절하게 얻고있다. 그러나 나는 얻고 있지 않다. 그래프 옆에있는의 범례 이름은 series0, series1로오고있다. folowing 코드를 사용하고 있습니다.엑셀 차트 - 전설을 얻지 못했습니다.

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

내가 잘못 생각할 수도 있지만 범례는 차트의 요소 여야하며 독립 개체가 없어야합니다. 범례 이름을 가져 오려면 Chart.dataseries 객체를 반복하고 이름을 가져옵니다. 주의 : 1에서 시작하여 dataseries.count에서 끝납니다. 0에서 시작하면 오류가 발생하지 않지만 미친 결과가 나타납니다. 또한 개체를 여러 번 캐스팅해야합니다. 직장에서 Visual Studio가 없기 때문에 샘플 코드를 제공 할 수 없습니다. –

+0

범례는 series0, series1로오고 있습니다. 나는 그들을 개명하고 싶다. 방법? – Sanju

+0

차트의 시리즈 이름을 변경하십시오 - 범례도 업데이트해야합니다. 범례 개체는 이름 속성과 같아야합니다. –

답변

0

일련의 컬렉션을 반복하고 이름을 하나씩 설정하십시오. 이런 일 :

일련의 컬럼에있는 경우, 상기 데이터의 첫번째 열이 모두 계열의 X 값을 가지고, 나머지 열은 Y 값이되도록 일반적으로 데이터가 배치된다
foreach (Series series in myChart.SeriesCollection()){ 
    series.Name = "MyName"; 
} 
0

및 데이터의 첫 번째 행에는 범례에 표시된 시리즈 이름이 있습니다. Excel에서 데이터를이 방식으로 구문 분석 할 수 있는지 확인하려면 왼쪽 상단 셀이 비어 있는지 확인하십시오. SetSourceData의 차트 범위와 같이 첫 번째 열의 X 값과 첫 번째 행의 계열 이름을 포함하여 전체 범위를 사용합니다.

관련 문제