[C#] 엑셀 조작법 추가!! C# 2010. 7. 27. 18:45

C#에서 챠트를 직접적으로 생성 할 때는 다음과 같이 한다.

먼저 챠트 객체를 생성한 후
Excel.ChartObjects chartObjs = (Excel.ChartObjects)worksheet.ChartObjects(Type.Missing);               
챠트 포지션을 정해준다.
Excel.ChartObject chartObj = chartObjs.Add(270, 10, 200, 100);
그 다음 챠트 할당한 후
Excel.Chart xlChart = chartObj.Chart;
데이터를 넣어준다.
여기서 chartRange는 셀의 범위를 말한다.(Range)
xlChart.SetSourceData(chartRange, Type.Missing);
다음은 챠트 형태를 구하고
xlChart.ChartType = Excel.XlChartType.xlLineMarkers;
X,Y축에 대한 설정을 한다.
Excel.Axis xAxis = (Excel.Axis)xlChart.Axes(Excel.XlAxisType.xlValue,Excel.XlAxisGroup.xlPrimary);
xAxis.MajorUnit = 20;
Excel.Axis yAxis = (Excel.Axis)xlChart.Axes(Excel.XlAxisType.xlValue,Excel.XlAxisGroup.xlPrimary);
yAxis.MaximumScale = 100;
다음은 챠트 외부의 색을 정하는 것이고
xAxis.Border.Color = ColorTranslator.ToWin32(Color.Black);
이번 것은 챠트 내부의 색을 정한다.
xlChart.PlotArea.Interior.Color = ColorTranslator.ToWin32(Color.White);
범례를 쓰고 싶지 않다면 다음과 같이 Legend를 설정하면 된다.
Excel.Legend legend = xlChart.Legend;
legend.Delete();
셀만으로 접근하기가 힘들 경우는 TextBox를 쓰면 된다.
필자의 경우도 그러한 적이 있어 TextBox를 써봤다. 직접 생성해서 붙일 수도 있지만
엑셀 문서의 TextBox에 접근하는 것은 다음과 같다.
Excel.TextBox box = _worksheet.TextBoxes(엑셀에서 생성한 텍스트 박스 순서) as Excel.TextBox;
txt_HowTo.Text = String형 데이터;

흠냐.. 은근.. 접근 할 수 있는 것이 많지만..
셀 경우 ADO.NET에서 XML로 넘겨 속도가 빠르게 할 수 있지만..

이와 같이 객체에 접근하는 것에는 속도가 많이 떨어진다..

방법이 없을까 ㅠㅠ