본문 바로가기

Programming/ASP .NET

엑셀 오토메이션을 이용하여 데이터를 엑셀 파일로 저장하기

요구사항 : 사용자가 웹에서 본 데이터를 특정 포멧에 맞추어 엑셀 파일로 저장
조건 : 사용자가 보는 데이터 포멧은 일정하다. 즉 데이터 개수만 다를 뿐 그 항목은 같다.
준비사항 : 엑셀 .COM 컴퍼넌트를 가져와야 함(즉 서버측에 엑셀이 일단 설치가 되어 있어야 함)

Visual Studio 2005 메뉴에서 다음 과정을 거침
Website - 참조 추가 - COM 탭으로 이동
Microsoft Excel x.x Object Library 선택

특정 파일을 읽어와서 수정 후 다른 이름으로 저장하는 소스
==============================================================================
using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Excel = Microsoft.Office.Interop.Excel;

public partial class _Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        
        Excel.Application excelApp = new Excel.Application();
        excelApp.Visible = false;
        Excel.Workbook excelWorkbook = excelApp.Workbooks.Open("e:\\test.xls", Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing,
Type.Missing, Type.Missing); // test.xls 파일을 열어서

        Excel.Sheets excelSheets = excelWorkbook.Worksheets;
        string currentSheet = "Sheet1";
        Excel.Worksheet excelWorksheet = (Excel.Worksheet)excelSheets.get_Item(currentSheet);
        Excel.Range range;
        range = excelWorksheet.get_Range("A1", Type.Missing); // A1 위치에

        range.set_Value(Type.Missing, "요거이 테스트");  // 데이터를 삽입

        excelWorkbook.SaveAs("e:\\copy_test.xls", Type.Missing, Type.Missing,
Type.Missing, Type.Missing, Type.Missing, Excel.XlSaveAsAccessMode.xlExclusive,
Type.Missing, Type.Missing , Type.Missing, Type.Missing, Type.Missing); // 다른 이름으로 저장
        excelApp.Quit(); // 프로그램 종료
    }
}