|
Interfaces |
설명 |
Application |
전체 Microsoft Excel의 응용 프로그램을 나타냅니다. |
Workbook |
Microsoft Excel 통합 문서를 나타냅니다. |
Worksheet |
워크시트를 나타냅니다. |
Range |
행, 열, 셀 중 하나 이상의 연속된 블록을 선택, 또는 범위를 나타냅니다. |
ChartObject |
워크시트에 포함된 차트를 나타냅니다. |
ChartObjects |
지정된 차트 시트, 대화 상자 시트, 또는 Worksheet에있는 모든 개체의 컬렉션 ChartObject |
Chart |
통합 문서에 차트를 나타냅니다. |
자세한 사항 -
http://msdn.microsoft.com/ko-kr/library/Microsoft.Office.Interop.Excel(v=office.11).aspx
l 속성과 메서드
위 인터페이스들의 자주 사용되는 속성과 메서드들 입니다.
Application의 속성
속성 |
설명 |
Workbooks |
Application의 워크북을 가져온다. |
Cells |
Application의 셀들을 가져온다. |
Workbook 의 속성과 메서드
속성 |
설명 |
Worksheets |
Workbook의 Worksheets를 가져온다. |
메서드 |
설명 |
SaveAs(...) |
Workbook을 파일로 저장한다. |
Close(…) |
Workbook을 닫아주면서 파일로 저장한다. |
SaveAs와 Close메서드는 엑셀 파일로 저장하실때 사용합니다.
SaveAs는 파일의 여러가지의 옵션들을 설정하실 수 있습니다.
close를 안해주시면 EXCEL프로그램이 백그라운드내에 계속 남아있게 되니 마지막에는 close를 반드시 해주셔야 합니다.
Workbooks 의 메서드
메서드 |
설명 |
Add(…) |
워크북을 추가한다. |
Worksheet 의 속성과 메서드
속성 |
설명 |
Cells |
Worksheet의 셀들을 가져온다. |
Name |
Worksheet의 이름을 가져오거나 설정한다. |
메서드 |
설명 |
ChartObjects(…) |
차트개체를 생성한다. |
get_Range(…) |
차트화할 셀 영역을 지정해 준다. |
Worksheets의 메서드
메서드 |
설명 |
Add(…) |
워크시트를 더해준다. (다수가능) |
get_Item(…) |
매개변수로 숫자 혹은 워크시트의 이름을 받아 해당 워크시트를 반환해준다. |
ChartObject 의 속성
속성 |
설명 |
Chart |
차트를 가져온다. |
ChartObjects 의 메서드
메서드 |
설명 |
Add(…) |
차트 크기, 표시될 위치를 지정해 준다. |
Chart 의 속성과 메서드
속성 |
설명 |
ChartType |
차트의 종류를 가져오거나 설정할 수 있다. |
메서드 |
설명 |
SetSourceData(…) |
차트의 데이터를 세팅 한다. |
l 실습
-참조추가
Microsoft.Office.Interop.Excel을 참조추가해줍니다.
“Excel = 참조내용” 으로 해준 이유는 Excel네임스페이스 내의 인터페이스들에 접근하기 위함입니다.
여러 office 네임스페이스들의 인터페이스명들이 같거나 비슷한 경우가 있기 때문에
위와같이 선언 후 Excel.인터페이스명 으로 접근하시는 것이 바람직합니다.
-엑셀문서 생성
//엑셀 생성 및 초기화 public void SetExcel() { //문서생성 excelApp = new Excel.Application();
//excelApp의 워크북을 추가후 반환 excelWorkbook = excelApp.Workbooks.Add(true);
//워크북에 세번째 매개변수로 받은 숫자만큼 개수의 워크시트를 더해준다. excelWorkbook.Worksheets.Add(Type.Missing, Type.Missing, 3, Type.Missing);
//활성 워크 시트 설정 (2번째 워크시트) excelWorksheet = (Excel.Worksheet)excelWorkbook.Worksheets.get_Item(2);
//워크 시트의 이름 설정 } |
위와 같이 엑셀문서를 생성해줍니다.
우선적으로 해야 할 엑셀의 문서를 생성하고,
해당 엑셀문서의 워크북을 추가 후 해당워크 북에 활성 워크시트를 설정하는 과정입니다.
Type.Missing 은 리플렉션을 통한 호출함수 인자에 Type.Missing 를 사용하여 매개 변수의 기본값을 가져오기 위함입니다.
-데이터삽입
//데이터삽입 (주의사항-엑셀은 1행1열부터 시작) excelWorksheet.Cells[1, 1] = "데이터"; |
셀을 불러와 데이터를 넣는 모습입니다.
주의하실 점은 셀을 인덱서로 불러오실 때 입니다.
셀은 배열이나 여러 데이터 콜렉션들의 인덱서처럼 0부터 시작하는 것이 아닌 1부터 시작합니다.
-차트생성
Excel.ChartObjects chartobjects = (Excel.ChartObjects)excelWorksheet.ChartObjects(Type.Missing); //차트생성
//차트크기,위치지정 160, 180); //차트크기 Excel.Chart chart = setChart.Chart; //차트할당
Excel.Range Area = excelWorksheet.get_Range("A1", "B4"); //차트화할 셀 영역
chart.SetSourceData(Area, Excel.XlRowCol.xlColumns); //차트데이터셋팅
chart.ChartType = Excel.XlChartType.xlCylinderColClustered; //차트종류 |
엑셀문서의 데이터를 기반으로 차트를 그리는 과정입니다.
Range의 Get_Ragne부분은 차트화할 데이터의 셀 영역을 지정해주는 것이며, Add(20, 100, 160, 180)은
가로20 세로100의 위치에 가로160 세로180의 차트를 생성해 주겠다는 것입니다.
마지막으로 차트에 들어갈 데이터영역을 차트에 셋팅한 후 Excel.XlChartType. 에서 차트의 형태를 지정해주면 됩니다.
현재 적용된 그래프는 3차원 세로막대 그래프.
-저장 및 닫기
//Workbook을 입력된 매개변수들로 파일옵션을 설정하며 파일로 저장한다. Excel.XlFileFormat.xlWorkbookNormal, //파일포맷 Type.Missing, //패스워드 Type.Missing, //편집시패스워드 Type.Missing, //실행시읽기전용권유 Type.Missing, //데이터 수정시 원본백업파일만들지의 여부 Excel.XlSaveAsAccessMode.xlExclusive, //접근모드 Excel.XlSaveConflictResolution.xlLocalSessixxonChanges, //공유,로컬유저 관련 Type.Missing, //AddToMru Type.Missing, //TextCodepage Type.Missing, //TextVisualLayout Type.Missing //Local );
//Workbook을 닫아주면서 파일로 저장한다 filename, //파일URL Type.Missing //회람메세지관련 설정 ); |
편집한 데이터들을 파일로 저장 및 닫아주는 법 입니다.
SaveAs의 매개변수로 여러 옵션을 설정하여 저장할 수 있습니다.
그리고 마지막으로 Close를 해주셔야합니다.
안해주실경우 윈도우 백그라운드 내에 엑셀프로그램이 종료되지 않고 남아 있게 됩니다.
-결과
처음 엑셀 생성,초기화에서 워크시트를 3개를 추가해서 총 4개인 것을 보실 수 있으며
두번째 시트를 활성하여 입력하였기에 두번째 시트에 데이터들이 입력된 것을 보실 수 있습니다.
발표자료
기술문서
실습코드