반응형
C#으로 엑셀 워크시트 선택, 생성, 컨트롤
1. 목표
-
원하는 워크북 열기
-
워크시트 수 확인
-
워크시트 생성, 삭제
-
워크시트 선택 방법
-
워크시트 이름 변경
2. 전체 코드
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_02
{
class Program
{
static void Main(string[] args)
{
Application excelapp = new Application();
Workbook read_wb = excelapp.Workbooks.Open(Filename: @"c:\test\123.xlsx");
Console.WriteLine(read_wb.Worksheets.Count);
Worksheet ws1 = read_wb.Worksheets.Item["sheet1"];
Worksheet ws2 = read_wb.Worksheets.Item[2];
ws1.Name = "가나다";
Console.WriteLine("read_wb.Worksheets.Item[\"sheet1\"] = " + ws1.Name);
Console.WriteLine("read_wb.Worksheets.Item[2] = " + ws2.Name);
ws2.Delete();
read_wb.Worksheets.Add(After: read_wb.Worksheets[1]);
read_wb.Worksheets.Add(Before: read_wb.Worksheets[2]);
read_wb.Save();
read_wb.Close();
excelapp.Quit();
Marshal.ReleaseComObject(ws1);
Marshal.ReleaseComObject(ws2);
Marshal.ReleaseComObject(read_wb);
Marshal.ReleaseComObject(excelapp);
}
}
}
3. 뜯어 보기
Workbook read_wb = excelapp.Workbooks.Open(Filename: @"c:\test\123.xlsx");
-
경로(Filename)에 있는 엑셀 파일을 불러 온다.
Console.WriteLine(read_wb.Worksheets.Count);
-
읽어온 워크북(read_wb)에 있는 워크시트의 숫자를 콘솔창에 출력한다.
Worksheet ws1 = read_wb.Worksheets.Item["sheet1"];
Worksheet ws2 = read_wb.Worksheets.Item[2];
-
워크북에 있는 워크시트를 선택하는 방법이다
-
Item["Sheet1"]처럼 시트 명을 이용해서 선택이 가능하다.
-
Item[1]처럼 워크시트의 순서를 이용 할 수 있다. (순서는 1부터 시작한다.)
ws1.Name = "가나다";
-
ws1의 시트 이름을 변경한다.
Console.WriteLine("read_wb.Worksheets.Item[\"sheet1\"] = " + ws1.Name);
Console.WriteLine("read_wb.Worksheets.Item[2] = " + ws2.Name);
-
ws1, ws2의 시트명을 출력하여 변경되었는지 확인한다.
ws2.Delete();
-
ws2 시트를 삭제한다.
read_wb.Worksheets.Add(After: read_wb.Worksheets[1]);
read_wb.Worksheets.Add(Before: read_wb.Worksheets[2]);
-
시트를 추가한다.
-
'After : read_wb.Worksheets[1]'은 첫번째 시트 뒤에 새 시트를 생성한다.
-
'Before : read_wb.Worksheets[2]'는 두번째 시트 앞에 새 시트를 생성한다.
-
'Count'를 이용하여 여러개의 시트를 한번에 만들 수 있다.
read_wb.Save();
read_wb.Close();
excelapp.Quit();
Marshal.ReleaseComObject(ws1);
Marshal.ReleaseComObject(ws2);
Marshal.ReleaseComObject(read_wb);
Marshal.ReleaseComObject(excelapp);
-
파일을 세이브하고 엑셀을 닫는다.
-
'Marshal.ReleaseComObject(ws1)'를 이용하여 사용한 'ws1', 'ws2'객체도 해제(Release) 해주어야 한다.
반응형
'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) 01. C#으로 엑셀 열기, 저장, 닫기 (0) | 2021.01.31 |