C# Excel 사용법.

2024. 7. 19. 09:27·사소한 아이의 소소한 스킬/C#

 

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    // 셀 글자 크기 지정 
Colored by Color Scripter
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:얇은 이중 실선
Colored by Color Scripter
cs
 
④할당 (값입력)
excelApp.ActiveSheet.range("A1:Z10").Cells.value=이름 
excelApp.ActiveSheet.range("A1:Z10").Cells.value=1 
excelApp.ActiveSheet.range("A1:Z10").Cells.value="2003-01-01" 
excelApp.ActiveSheet.Range("A1:Z10").Cells(1,2).value= "연령"
excelApp.ActiveSheet.Range("A1:Z10").Cells(1,1).Formula = "=SUM(E1:E30)"
 
아래는 사용 예

 

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)";
Colored by Color Scripter
cs

 

저작자표시 비영리 변경금지 (새창열림)
'사소한 아이의 소소한 스킬/C#' 카테고리의 다른 글
  • Hex to float 변환 사이트 (float to hex Converter)
  • WPF 프로그램에서의 Python 실행 방법
  • C#에서 초마다 정확하게 수행하는 타이머??!!
  • WCF (Window Communication Foundation)
JOOJI
JOOJI
그냥 혼자좋아하는 것들 남기는 블로그....
  • JOOJI
    사소한프로그래머의 소소한행복
    JOOJI
  • 전체
    오늘
    어제
    • 분류 전체보기 (967)
      • 사소한 아이의 소소한 일상 (247)
      • 사소한 아이의 소소한 먹거리 (44)
      • 사소한 아이의 소소한 정보 (75)
      • 사소한 아이의 소소한 감사 (4)
      • 사소한 아이의 소소한 운동 (66)
      • 사소한 아이의 소소한 여행 (40)
        • 2013_전주 (1)
        • 2014_독일 (13)
        • 2014_군산 (1)
        • 2015_제주도 (3)
        • 2015_서울모토쇼 (3)
        • 2015_진해 (1)
        • 2015_전주 (1)
        • 2016_여수 (1)
        • 2020_강릉 (1)
        • 2022_제주도 (4)
      • 사소한 아이의 소소한 강짱 (22)
        • 하트투하트 (10)
        • MAPS (1)
        • 화려한 유혹 (2)
        • 한여름의 추억 (2)
      • 사소한 아이의 TV (50)
        • Drama (9)
        • 예능 (32)
        • 사소한 아이의 다현 (9)
      • 사소한 아이의 소소한 스킬 (130)
        • Scaleform (2)
        • C# (74)
        • QT (3)
        • 알고리즘 (4)
        • Python (21)
        • PyQT5 (9)
        • C_C++ (2)
      • 사소한 아이의 소소한 축구 (283)
        • Korea (25)
        • Germany (45)
        • Bayern Munich (64)
        • Soccer_ETC (75)
        • Euro 2016 (12)
        • 친선경기 (3)
      • 사소한 아이의 소소한 생활정보 (6)
  • 블로그 메뉴

    • 홈
    • 태그
    • 미디어로그
    • 위치로그
    • 방명록
    • 관리
  • 링크

    • 독일여행
    • 레바티스토리
    • 프라치노 공간
    • 남성패션꿀템 블로그
  • 공지사항

  • 인기 글

  • 태그

    바이에른 뮌헨
    분데스리가
    러닝
    WPF
    python
    c#
    뮌헨
    문제
    회사밥
    독일
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.3
JOOJI
C# Excel 사용법.
상단으로

티스토리툴바