ASP.NET 기초 강의실

시삽: 레드플러스 님 
게시판 이동:
 제목 : XML 을 이용한 엑셀다운로드
글번호: 157
작성자: 최성춘
작성일: 2007/04/16 오후 7:13:00
조회수: 6482


/// <summary>
        /// XSL을 이용한 Excel파일 다운로드
        /// </summary>
        /// <param name="ds">변환할 DataSet</param>
        /// <param name="sTemplateFileName">템플릿파일 경로</param>
        public static void SaveExcelByXSL(DataSet ds, string sTemplateFileName)
        {

            //임시 디렉토리의 모든 화일 삭제
            DirectoryInfo dInfo = new DirectoryInfo(System.Configuration.ConfigurationManager.AppSettings["Excel_VSaveDir"]);
            FileInfo[] fInfos = dInfo.GetFiles();
            foreach(FileInfo f in fInfos)
            {
                if(f.LastWriteTime.ToShortDateString() != DateTime.Now.ToShortDateString())
                    f.Delete();
            }

            //DOM 로딩
            XmlDataDocument doc = new XmlDataDocument(ds);
            XPathNavigator nav = doc.CreateNavigator();
            XslCompiledTransform xslt = new XslCompiledTransform();

            //xsl Template 파일 경로
            string sXslTemplateFullPath = System.Configuration.ConfigurationManager.AppSettings["Excel_TempDir"] + sTemplateFileName;
            
            //temp 파일명            
            string sFileName = String.Format("{0:yyyyMMddhhmmsss}", System.DateTime.Now);
            
            //temp 파일의 물리적 FullPath            
            string file =
                System.Configuration.ConfigurationManager.AppSettings["Excel_VSaveDir"]
                + sFileName + ".xls";

            //DataSet 을 Excel형식으로 변환
            xslt.Load(sXslTemplateFullPath);
            XmlTextWriter writer = new XmlTextWriter(file, Encoding.UTF8);
            xslt.Transform(nav, writer);
            writer.Close();

            //다운로드
            string sVfileName =
                System.Configuration.ConfigurationManager.AppSettings["Excel_VSaveURL"] + sFileName + ".xls";
            HttpContext.Current.Response.Redirect(sVfileName);
        }
 
이전 글   다음 글 삭제 수정 답변 글쓰기 리스트


관련 아티클 리스트
  제       목 파일 작성자 작성일 조회
이전글 15. ASP.NET 추적(Tracing), 상태 관리(State Management... - 레드플러스 2003-11-15 5794
  14. 데이터 출력 컨트롤 : 리피터, 데이터리스트, 데이터그리드 - 레드플러스 2003-11-15 7868
  데이터그리드 컨트롤을 사용해서 출력(모양 및 기본 페이징) - 레드플러스 2004-05-28 5972
  데이타 리스트 이미지 사용시 이미지 존재여부 확인후 처리 - 최성춘 2009-06-03 5499
  기본 및 고급(사용자 정의) 페이징 연습용 쿼리문 페이징연습.sql(951 Byte(s)) 레드플러스 2004-05-28 5936
  기본페이징테스트.aspx 기본페이징테스트.aspx(806 Byte(s)) 레드플러스 2004-05-28 6591
  기본페이징테스트.aspx.cs 기본페이징테스트.aspx.cs(2 KB) 레드플러스 2004-05-28 5513
  그리드 컨트롤의 ItemDataBound 이벤트 핸들러 : 최근글 표시 및 마우스 오... - 레드플러스 2005-04-20 6686
  그리드 컨트롤의 ItemDataBound 이벤트 핸들러 : 해당row 클릭시 선택값... - 최성춘 2009-06-08 7091
  그리드뷰(GridView) 컨트롤 : MSDN 온라인 예제 링크 - 레드플러스 2006-03-15 6522
  그리드뷰(GridView) Footer 영역 사용(푸터영역에 소계 출력 및 셀 합치기... - 레드플러스 2014-03-17 4773
  참고 URL : GridView 및 DataGrid 웹 서버 컨트롤 비교 - 레드플러스 2007-02-22 5470
  DataGrid의 Data 내용을 Excel로 Down받기.. - 최성춘 2007-03-14 6979
  엑셀 파일의 내용을 읽어 오기 - 최성춘 2007-04-16 5783
현재글 XML 을 이용한 엑셀다운로드 - 최성춘 2007-04-16 6482
  GridView(그리드뷰) 컨트롤의 기본 페이징(Paging) 관련 코드 샘플 - 레드플러스 2008-06-30 9208
  활용예제 : 그리드뷰 멀티헤더 : GridView's Multi Header(Row ... GridViewMultiHeader.png(5 KB) 레드플러스 2009-01-22 9541
  asp.net dataset to excel download - 레드플러스 2014-03-16 4539
  [팁] ASP.NET GridView Currency 표현, 세자리마다 콤마 찍기 - 레드플러스 2014-03-26 4718
  Com+ 사용시..트랙 잭션 에러관련 - 최성춘 2007-06-05 6255
  고급페이징테스트.aspx 고급페이징테스트.aspx(823 Byte(s)) 레드플러스 2004-05-28 5934
  고급페이징테스트.aspx.cs 고급페이징테스트.aspx.cs(2 KB) 레드플러스 2004-05-28 5521
다음글 13. ADO.NET - 레드플러스 2003-11-15 7070
 
손님 사용자 Anonymous (손님)
로그인 Home