Excel 사용하기

C#에서는 엑셀을 쉽게 접근할 수 있고, 이용 할 수 있다. 물론 C++에서도 가능하지만 C# 만큼 쉽지는 않다.
C#에서 엑셀을 다루는법을 알아 보겠다.
동구님 홈 페이지의 내용을 가져 왔다.

1. C# 프로젝트 생성

2. 닷넷 프레임워크의 VSTO를 사용하기 위해, 참조 추가에서 Microsoft.Office.Interop.Excel을 추가한다.
(VSTO는 Visual Studio Tools for Office의 약자이다)

3. 아래는 코드이다.
엑셀은 0부터 시작이 아니라 [1,1]부터 시작이다. 종료시에 메모리를 해제해 작업 관리자에 엑셀이 남아 있지 않도록 한다.

using System;

using System.Collections.Generic;

using System.Text;

using Excel = Microsoft.Office.Interop.Excel;

 

namespace use_excel

{

    class Program

    {

        static void Main(string[] args)

        {

            WriteExcel();

        }

 

        /// <summary>

        /// Excel에 작성하는 방법에 대해 설명할 메소드입니다.

        /// </summary>

        private static void WriteExcel()

        {

            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)

        {

            string runPathStr = AppDomain.CurrentDomain.BaseDirectory;

            runPathStr += "test.xls";

            wb.SaveAs(runPathStr, 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

    }

}

 

소스 : use_excel.zip