C#에서 Excel 실행법
1
|
dynamic excelApp = AutomationFactory.CreateObject("Excel.Application");
|
cs |
위와같은 코드를 이용하면 엑셀이 실행된다.
하지만 이전에 작업해주어야 할것이 한가지 있다.
Excel.Application을 이용하려면 프로젝트에 Microsoft.Office.Interop.Excel 항목을 참조 추가하여야한다.
추가 방법은
Project -> Add Reference -> COM 탭 -> Microsoft Excel Object Library체크 -> OK
만약 Microsoft Excel Object Library이 보이지않는다면 엑셀의 설치와 VS의 설치 순서가 달라서 안보이는 것이다.
Office 2003 : http://www.microsoft.com/en-us/download/details.aspx?id=20923
Office 2007 : http://www.microsoft.com/en-us/download/details.aspx?id=18346
Office 2010 : http://www.microsoft.com/en-us/download/details.aspx?id=3508
해당 Office 버전에 맞추어서 다운받고 설치하면 Microsoft Excel Object Library 항목이 보일것이다.
그후 참조에 Microsoft Excel Object Library를 추가하고 상단의
1
|
dynamic excelApp = AutomationFactory.CreateObject("Excel.Application");
|
cs |
코드를 사용하면 엑셀이 실행된다.
그 후 엑셀의 셀병합, 정렬, 색상정보등을 변경할수있는데
엑셀을 dynamic 변수로 지정하여 어떠한 정보들이 존재하는지 알수가없다....많이 당황했다...하나하나 확인해보기도힘들었고...
MSDN에서 정리해두었다..
http://msdn.microsoft.com/en-us/library/ff846392.aspx
하지만.. 잘 모르겠다 이것만으로는...
그래서 내가 써본 부분과 참조한 부분을 적어본다.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
excelApp.Workbooks.add() // 새 Excel파일 추가
excelApp.Workbooks.Open("c:\File.xls") // 파일 오픈
excelApp.ActiveWorkBook.Sheets("SheetName").Select // 시트 선택
excelApp.Application.Run("MacroName") // 매크로 실행
excelApp.Application.Visible=TRUE // 엑셀이 보이도록 설정
excelApp.Application.ScreenUpdating=true // Update 속성
excelApp.ActiveSheet // 활성시트 선택 서식 excelApp.ActiveSheet.Columns("A:U").AutoFit // 자동 열너비
excelApp.ActiveSheet.Columns("A:Z").ColumnWidth=6.75 // 열 너비 설정
excelApp.ActiveSheet.Rows("1:100").RowHeight=12 // 행 높이 설정
excelApp.Application.StandardFont="ArialNarrow"; // 글꼴
excelApp.Application.StandardFontSize="8" // 글자 크기
excelApp.ActiveSheet.Font.Size="8" // 글자 크기
excelApp.ActiveSheet.Font.Bold=True // Bold
excelApp.ActiveSheet.Font.Italic=True // 이태리체
excelApp.ActiveSheet.Font.Underline=True // 언더라인
excelApp.ActiveSheet.Font.StrikeThrough=True // 취소선
excelApp.ActiveSheet.HorizontalAlignment=3 // 가로 정렬 4:오른쪽 3:중앙 2:왼쪽 // -4108: 중앙 -4131:왼쪽 -4152:오른쪽
excelApp.ActiveSheet.VerticalAlignment=2 // 세로 정렬 3:하단 2:중앙 1:상단
excelApp.ActiveSheet.cells(2,1).font.name='Arial' // 셀 글꼴 지정
excelApp.ActiveSheet.cells(2,1).font.size=25 // 셀 글자 크기 지정
|
cs |
1
2
3
4
5
6
7
|
excelApp.ActiveSheet.Range("A1:Z10").Property=value // ???
excelApp.ActiveSheet.Range("A1:Z10").Merge // 셀병합
excelApp.ActiveSheet.Range("A1:Z10").WrapText=False // 줄 바꿈 금지
excelApp.ActiveSheet.Range("A1:Z10").Borders(b_type).Weight=i_val // b_type 1:왼쪽 2:오른쪽 3:위쪽 4:아래쪽 5:왼쪽위쪽경사 6:오른쪽위쪽경사 // 셀단위임 7:왼쪽 8:위쪽 9:아래쪽 10:오른쪽 11:내부세로선 12:내부 가로선 // 범위지정 시 i_val 0:경계없음 및 1,2,3 굶은 선
Ole_object.ActiveSheet.Range("A1:Z10").Borders(b_type).linestyle=1 // 1:굵은선 2:가는선 4:점선 9:얇은 이중 실선
|
cs |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
|
dynamic excelApp;
// 엑셀사용
excelApp = AutomationFactory.CreateObject("Excel.Application");
// 엑셀이 보이도록
excelApp.visible = true;
// 워크북 지정
dynamic workbook = excelApp.workbooks;
// 워크북 생성
workbook.Add();
// 활성시트 선택
dynamic sheet = excelApp.ActiveSheet;
// 셀 선언
dynamic cell = null;
for (int i = 65; i < 89; i++)
{
// Column width 지정
sheet.Columns(Convert.ToChar(i).ToString()).ColumnWidth = 3;
}
// Row height 지정
sheet.Rows(9).RowHeight = 4.5;
// 병합
sheet.Range("G1:N3").merge();
// 폰트 크기
sheet.Range("G1:N3").Font.Size = 18;
// 폰트 설정
sheet.Range("G1:N3").Font.Name = "Gulim";
// bold 처리
sheet.Range("G1:N3").Font.Bold = true;
// 정렬
sheet.Range("G1:N3").HorizontalAlignment = -4108;
// 색상정보 첫 215 B값 두번째 215 G값 255는 R값
sheet.Range("G1:N3").interior.Color = 215 * (int)Math.Pow(16, 4) + 215 * (int)Math.Pow(16, 2) + 255;
// 입력할 cell 선택
cell = sheet.Cells[1, 7];
// 입력
cell.Value = "내용";
// 선긋기
sheet.Range("G1:N3").Borders.LineStyle = 1;
// 입력할 cell 선택
cell = sheet.Cells[1, 7];
// 함수 입력
cell.Formula = "=SUM(E1:E30)";
|
cs |