2014-12-15 1 views
4

C#에서 차트의 Excel XValue를 얻는 방법

C#을 사용하여 excle 파일의 차트를 조작하는 코드를 작성하고 있습니다. 주요 요구 사항 중 하나는 Chart SeriesCollection의 XValue 속성을 가져 오는 것입니다. Visual Studio의 조사 식 창에서 값 목록을 볼 수는 있지만 인덱스로 방문하려고했지만 작동하지 않습니다. 조사 식 창에서 s.XValue 유형이 동적 {object []}이고 obj.ToString()이 System.Object [*] 인 것으로 나타났습니다. 질문은 XValue가 인덱스를 지원하지 않으면 XValue 속성에서 각 값을 가져올 수있는 방법입니다.


그런데 인터넷에서 검색 할 때 셀 범위를 Excel로 설정하는 방법 만 찾을 수 있지만 XValue를 가져 오는 방법은 찾지 못했습니다. 누군가가 조언 할 수 있으면 정말 고맙습니다.

Excel._Worksheet worksheet = (Excel._Worksheet)book.Worksheets[a]; 
Excel.ChartObject chartObj = (Excel.ChartObject)worksheet.ChartObjects(1); 
if (chartObj != null) 
{ 
    Excel.Chart chart = (Excel.Chart)chartObj.Chart; 
    var s = (Excel.Series)chart.SeriesCollection(1); 
    object obj = s.XValues; 
    //How to get s.XValues[1], s.XValues[2], s.XValues[3]... 
} 

답변

3

이 시도 :

var chart = chartObj.Chart as Excel.Chart; 
var s = chart.SeriesCollection(1) as Excel.Series; 

var xValues = (s.XValues as object) as Array; 

foreach (var xVal in xValues) 
{ 
    MessageBox.Show(xVal.ToString()); 
} 

또한 What is this `Object[*]` type I get with COM interop?

+0

감사합니다, 그것을 작동합니다! –

관련 문제