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 } }
'.Net > Winform' 카테고리의 다른 글
C# 계정을 이용한 Directory Lock & Unlock (0) | 2012.08.28 |
---|---|
C# ListView Headr Column Size 변경 막기 (0) | 2012.08.28 |
C# 리소스 언어 설정 (0) | 2012.08.22 |
C# DirectX.AudioVideoPlayback 을 이용한 동영상 재생 (11) | 2012.08.21 |
C# 중복 실행 방지 Mutex (0) | 2012.08.14 |