C#으로 엑셀 열기, 저장, 닫기
1. 목표
-
엑셀을 사용 할 수 있도록 참조 추가
-
엑셀 인스턴스 생성
-
워크북 생성
-
내용 저장 ( Save(), SaveAs() )
-
엑셀 프로그램 닫기 (엑셀 릴리즈)
2. 전체 코드
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
|
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Microsoft.Office.Interop.Excel;
using System.Runtime.InteropServices;
namespace chapter_01
{
class Program
{
static void Main(string[] args)
{
Application excelapp = new Application();
Workbook wb = excelapp.Workbooks.Add();
wb.SaveAs(Filename: @"c:\test\123.xlsx");
wb.Close();
excelapp.Quit();
Marshal.ReleaseComObject(wb);
Marshal.ReleaseComObject(excelapp);
}
}
}
|
cs |
3. 뜯어 보기
1
2
|
using Microsoft.Office.Interop.Excel;
using System.Runtime.InteropServices;
|
cs |
using Microsoft.Office.Interop.Excel;
> 엑셀 사용을 위한 참조 추가
(참조 - COM - Microsoft Excel 16.0 Object Library 체크)
> 참조 추가는 앞선 글 참고
using System.Runtime.InteropServices;
> 사용한 엑셀 객체들을 해제(Release)를 해주기 위한 참조
1
2
|
Application excelapp = new Application();
Workbook wb = excelapp.Workbooks.Add();
|
cs |
Application excelapp = new Application();
> 엑셀 사용을 위한 인스턴스 생성
Workbook wb = excelapp.Workbooks.Add();
> 엑셀 파일 생성 (워크북 생성)
1
|
wb.SaveAs(Filename: @"c:\test\123.xlsx");
|
cs |
wb.SaveAs(Filename: @"c:\test\123.xlsx");
> 다른 이름으로 저장하기
> Filename 뒤에 경로와 확장자명 입력
> wb.Save()의 경우 현재 파일에 저장 (덮어쓰기)
1
2
3
4
5
|
wb.Close();
excelapp.Quit();
Marshal.ReleaseComObject(wb);
Marshal.ReleaseComObject(excelapp);
|
cs |
wb.Close();
> 워크 북 닫기
excelapp.Quit();
> 엑셀 닫기
Marshal.ReleaseComObject(wb);
> 워크북 닫기 (릴리즈)
Marshal.ReleaseComObject(excelapp);
> 엑셀 닫기 (릴리즈)
* 이중으로 닫는(릴리즈) 이유는 Close(), Quit()만으로 닫히지 않는(해제되지 않는) 객체들이 발생한다.
(직접 실행되는 것이 아닌 백그라운드에서 실행되어 있다)
그래서 using System.Runtime.InteropServices;를 참조하여 한번 더 객체를 해제시켜 준다.
'C# > C# & Excel' 카테고리의 다른 글
C# 엑셀(Excel) 06. 셀 테두리, 배경, 크기 설정 방법 (0) | 2021.02.15 |
---|---|
C# 엑셀(Excel) 05. 셀 병합, 셀 병합 해제 방법 (0) | 2021.02.11 |
C# 엑셀(Excel) 04. 워크시트 셀에 값, 함수 넣기 (2) | 2021.02.09 |
C# 엑셀(Excel) 03. 워크시트 셀 선택 방법 (0) | 2021.02.07 |
C# 엑셀(Excel) 02. C#으로 워크시트 선택, 생성, 컨트롤 (0) | 2021.02.04 |