쇼핑몰 프로젝트를 하면서 정산관련 처리를 하다가 정산내용을 웹페이지로 보여주고,

엑셀로도 다운로드 할수 있는 기능이 필요해서 만들어봤습니다.

 

우선 정산내용을 웹페이지에서 확인할수 있는 URL은

PrintPage.aspx?selectMonth=200501 입니다.

그리고 엑셀다운로드 버튼을 클릭했을때 위 페이지에서 보여지는 내용을

그대로 다운로드하는 내용은 다음과 같습니다.

 

private void btn_Excel_ServerClick(object sender, System.EventArgs e)
{
    // 현재 디렉터리에서 서버에 있는 aspx 페이지 "PrintPage.aspx?selectMonth=200501"를 실행하고 StringWriter 개체 sWriter를 통해 해당 페이지로부터 출력을 받습니다.

    string PageUrl = PrintPage.aspx?selectMonth=200501";  
    System.IO.StringWriter sWriter = new System.IO.StringWriter();
    Server.Execute(PageUrl, sWriter);

 

    //aspx페이지에서 실행된 페이지의 출력내용을 파일로 무조건 다운로드 시키기 위해
    //HTTP MIME 형식과 헤더를 변경합니다.

    string fileName = DateTime.Now.ToString("yyyyMMddHHmmss")+".xls";
    Response.ContentType = "application/unknown";   
    Response.AddHeader("Content-Disposition","attachment;fileName="+fileName);

 

    //sWriter 로부터 받은 HTML 스트림을 HTTP 출력 스트림에 씁니다.
    Response.Write(sWriter.ToString());

    Response.End();
}

+ Recent posts