[C#]엑셀 만들기

S:)·2024년 9월 23일

C#

목록 보기
3/3

1. Excel을 사용하기 위한 메서드 선언

using Microsoft.Office.Interop.Excel;
using System.Runtime.InteropServices;

2. Workbook을 생성

Application application = new Application();

//applicationd이 내부적으로 새 워크북을 하나 생성하고 이를 객체 형태로 반환
Workbook workbook = application.Workbooks.Add(); 

3. Worksheet 생성

Worksheet worksheet = workbook.Worksheets.Add(); //sheet1 은 기본임 , 추가하면 sheet2 로 sheet 가 2개 생김

//매개변수 지정
worksheet = workbook.Worksheets.Add(After: workbook.Worksheets[1]); //첫번째시트 뒤에 새 시트 생성
worksheet = workbook.Worksheets.Add(Before: workbook.Worksheets[2]); //두번째 시트 앞에 새 시트를 생성
worksheet = workbook.Worksheets.Add(Count: 3); //한번에 여러개의 시트를 한번에 생성

Worksheet 가 생성되면 , 해당 시트에 알맞게 필요한 정보를 넣는다.

엑셀 내의 기능

1. 엑셀 내의 범위 지정

Excel.Range range = worksheet.Ragne["시작셀","끝나는셀"];
Excel.Range range = worksheet.Ragne["시작셀 : 끝나는셀"];

2.셀 병합

// 행열 기준 (A2-B2 병합) 
range = worksheet.Range[worksheet.Cells[2, 1], worksheet.Cells[2, 2]]; 
range.Merge();

//병합된 셀은 가장 왼쪽, 첫 셀에 값이 설정되니 해당 셀에 값을 넣어준다.
worksheet.Cells[2, 1] = "셀병합"; 

3. 셀 속성

//폰트
range.Font.Name = "맑은 고딕";
//폰트 굵기
range.Font.Bold = true;     
//폰트 사이즈
range.Font.Size = 25;       
//글자 수평정렬 (2 : 왼쪽 정렬, 3 : 중앙 정렬, 4 : 오른쪽 정렬)
range.HorizontalAlignment = 2; 
//글자 수직정렬  (1 : 상단, 2 : 중앙, 3 : 하단)    
range.VerticalAlignment = 2;
//배경 색 지정
range.Interior.Color = Color.FromArgb(212, 229, 248); 

4. 셀 테두리

border = range.Borders;
//테두리 두께
border.Weight = Excel.XlBorderWeight.xlHairline;
//범위 전체 테투리 
range.BorderAround2(Excel.XlLineStyle.xlContinuous);
// 아래,왼쪽,오른쪽,위 부분만 테투리 설정
border[Excel.XlBordersIndex.xlEdgeBottom].LineStyle = Excel.XlLineStyle.xlContinuous;
border[Excel.XlBordersIndex.xlEdgeLeft].LineStyle = Excel.XlLineStyle.xlContinuous;
border[Excel.XlBordersIndex.xlEdgeRight].LineStyle = Excel.XlLineStyle.xlContinuous;
border[Excel.XlBordersIndex.xlEdgeTop].LineStyle = Excel.XlLineStyle.xlContinuous;
  • LineStyle
  • Weight

참고 :
https://renenyffenegger.ch/notes/Microsoft/Office/Excel/Object-Model/Border/index
https://vbaplayground.tistory.com/entry/Range-Borders-Property

profile
일단 저장

0개의 댓글