검색결과 리스트
Excel에 해당되는 글 2건
- 2010.07.27 [C#] 엑셀 조작법 추가!!
- 2010.04.06 [C#] 엑셀과 연동 -_-a 1
글
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로 넘겨 속도가 빠르게 할 수 있지만..
이와 같이 객체에 접근하는 것에는 속도가 많이 떨어진다..
방법이 없을까 ㅠㅠ
설정
트랙백
댓글
글
포스팅.. 이게 대체 얼마만인가 ㅠㅠ
일단 제일 먼저 참조를건다. 8.0과 9.0이 있었던거 같은데..
오피스 버전에 따라 다른 것이었다
using Excel = Microsoft.Office.Interop.Excel;
선언을 살포시 해 준 다음..
Excel.Workbook workbook = null;
Excel.Worksheet worksheet = null;
Excel.Application application = null;
선언을 해준다.
object missing = System.Reflection.Missing.Value;
object fileName = @"파일.xls";
위에 파일 이름은 파일이 저장되는 경로이다.
그리고 처리를 해서 엑셀 파일 양식을 읽어온다.
application = new Excel.Application();
application.Visible = false;
엑셀창이 나타나지 않고 작업을 진행하기 위해서 처리를 하고난 다음
workbook = application.Workbooks.Open(@"파일.xls", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
작업 양식이 저장되어 있는 엑셀을 열어주고
worksheet = (Excel.Worksheet)workbook.Sheets["시트명"];
해당 시트를 생성하고 난 다음 작업을 시작하면 된다
get_Range는 해당하는 범위를 가져온다.
예를 들어서 다음과 같이 하면
worksheet.get_Range("A12", "H12").Insert(Excel.XlInsertShiftDirection.xlShiftDown, Type.Missing);
해당 라인이 추가가 된다. 당연히 빈 공백이다.
그리고 해당하는 범위의 색을 바꾸자고 한다면
worksheet.get_Range("A12", "H12").Interior.Color = System.Drawing.ColorTranslator.ToOle(System.Drawing.Color.White);
형식으로 해 주면 된다.
해당하는 셀에 직접 입력하는 경우는
worksheet.Cells[12, 1] = i.ToString();
형식이다.
해당 파일을 열어서 그 데이터를 가져오고자 할 경우에는
worksheet.Cells.get_Range("B7", "B7").Text.ToString();
과 같이 해 주면 된다.
그리고 마지막으로 작업을 끝내고 난 다음 저장을 할 경우에
workbook.SaveAs(fileName, Excel.XlFileFormat.xlWorkbookNormal, missing, missing, missing, missing, Excel.XlSaveAsAccessMode.xlShared, Excel.XlSaveConflictResolution.xlLocalSessionChanges, missing, missing, missing, missing);
여기서 fileName은 포스팅 위쪽에 명시된 대상 파일이다.
위와같은 처리를 해서 저장을 해 주면 된다!!
그거 말고도 참.. 많던데.. 쉽지 않은 작업.. 이였다.. 왜 -_-;; 몰랐으니까;;
RECENT COMMENT