일단 지금 당장 필요한 DataGridView에 들어있는 데이터를 Excel File로 Export, Import 하는 기능을 시작해서
C#에서 Excel을 다루는 방법을 정리하고자 함.
일단 Microsoft.Office.Interop.Excel을 참조 추가하는 것부터 시작.
using Excel = Microsoft.Office.Interop.Excel;
....
Excel.Application app = new Excel.Application();
Excel._Workbook wb = app.Workbooks.Add(""); //'_'가 붙고 안붇은 interface의 차이는 찾아 봐야 할 듯.
Excel._Worksheet sheet = (Excel.Worksheet) wb.ActiveSheet; // 활성화 된 Sheet를 가져옴.
app.Visible = true; //처음에 실행했을때 Background에서 실행되고 있는데 Visible을 활성화함으로서 창을 띄워줌.
Excel.Range header = sheet.get_Range(sheet.Cells[1,1], sheet.Cells[1, 2]); //sheet.get_Range("A1", "B1")과 같은 표현으로 범위 지정 가능.
// Excel에서 마우스 클릭하여 Cell을 선택하는 것과 동일한게 Excel.Range이다. 시작 Cell과 끝 Cell을 지정해서 해당 범위내의 Cell들을 선택하는 경우
// 한개의 Cell을 선택할 때에도 Excel.Range cell1 = (Range)sheet.Cells[1, 1]; 이렇게 정의 해주어야 함.
//지정된 범위의 클자크기, 배경색 등 지정하기.
header.Font.Bold = true; //글씨 굵게
header.HorizontalAlignment = Excel.XlVAlign.xlVAlignCenter; // 중앙정렬
header.Interior.Color = ColorTranslator.ToOle(Color.LightBlue); //배경색 지정
header.Columns.AutoFit(); //컬럼 간격 자동맞춤.
header.Borders.LineStyle = Excel.XlLineStyle.xlContinuous; //실선
header.Borders.Weight= Excel.XlBorderWeight.xlThin; //얇은 선
//특정 Cell [1, 1]의 데이터 읽기
string Data = ((Range)sheet.Cells[1, 1]).Value.ToString();
// 특정 Cell [1, 1]의 데이터 쓰기
((Range)sheet.Cells[1, 1]).Value = "New Data";
참조 : http://stackoverflow.com/questions/23041021/how-to-write-some-data-to-excel-file-xlsx
'Programing > C#' 카테고리의 다른 글
C#으로 Visio파일 다루기 (0) | 2017.03.16 |
---|---|
DataSource로 바인딩한 DataGridView에 Row 생성 (0) | 2017.02.21 |
[MERGE INTO]데이터가 없으면 INSERT, 있으면 UPDATE (0) | 2017.02.06 |
C#의 XML 파일 생성, 사용 (0) | 2017.02.03 |
C# Delegate ≒ C 함수 포인터 ?!? (0) | 2017.02.01 |