.Net/Winform
C# Excel 작성
동구밖과수원
2012. 8. 28. 14:33
Visual Studio 2008, 닷넷프레임워크 2.0 기반에서 작성하였습니다.
테스트 용 콘솔 프로젝트 하나 생성하였습니다.
닷넷 프레임워크의 VSTO를 사용하기 위해선
Microsoft.Office.Interop.Excel 를
참조 추가해주어야합니다.
[이미지 1] Microsoft.Office.Interop.Excel 참조 추가
코드 부분입니다.
간단히 엑셀의 [1,1]에 테스트라는 문자열을 입력하였습니다.
엑셀은 배열로 접근 할 때, 0부터 시작이 아닌 1부터 시작입니다.
작업을 하신 후에는 꼭 메모리를 해제 시켜주셔야
Excel이 정상적으로 종료됩니다.
이 작업을 하지 않으실 경우에 작업 관리자에 Excel이 남아 있게 됩니다.
using System; using System.Collections.Generic; using System.Text; using Excel = Microsoft.Office.Interop.Excel; namespace AboutExcel { class Program { static void Main(string[] args) { AboutExcelWrite(); } /// <summary> /// Excel에 작성하는 방법에 대해 설명할 메소드입니다. /// </summary> private static void AboutExcelWrite() { Excel.Application excelApp = new Excel.Application(); Excel.Workbook wb = excelApp.Workbooks.Add(true); Excel._Worksheet workSheet = wb.Worksheets.get_Item(1) as Excel._Worksheet; //엑셀은 맨처음 Cell이 1,1 입니다 0,0이 아닙니다 workSheet.Cells[1, 1] = "테스트"; ExcelDispose(excelApp, wb, workSheet); } /// <summary> /// 저장및 메모리 해제 /// </summary> /// <param name="excelApp"></param> /// <param name="wb"></param> /// <param name="workSheet"></param> public static void ExcelDispose(Excel.Application excelApp, Excel.Workbook wb, Excel._Worksheet workSheet) { wb.SaveAs(@"E:\Program\etc\C#\About\AboutExcel\bin\Debug\test.xls", Excel.XlFileFormat.xlWorkbookNormal, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Microsoft.Office.Interop.Excel.XlSaveAsAccessMode.xlExclusive, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing); wb.Close(Type.Missing, Type.Missing, Type.Missing); excelApp.Quit(); releaseObject(excelApp); releaseObject(workSheet); releaseObject(wb); } #region 메모리해제 private static void releaseObject(object obj) { try { System.Runtime.InteropServices.Marshal.ReleaseComObject(obj); obj = null; } catch (Exception e) { obj = null; } finally { GC.Collect(); } } #endregion } }