'Convert'에 해당되는 글 1

  1. 2007.06.18 ASP 페이지를 엑셀로 변환하기- ASP Convert to Excel

ASP 페이지를 엑셀로 변환하기- ASP Convert to Excel

Written by Ssemi™(semin Seol), www.Ssemi.net

오랜만에 글을 쓰는 것 같습니다. 물론 몇가지 개발한 결과물이 있는데, 차마 이곳에 올리기가 부끄럽기에(!) 조용히 묻어두고 있습니다 언젠가는 이 곳에 올라오겠지요.
오래간만에 ASP작업을 했습니다.

ASP를 사용해서 페이지를 엑셀 파일로 받고자 할 때, 아래 두 줄의 소스 코드를 통해서 엑셀로 변환을 시킵니다.
페이지 헤더(Header)에 아래 소스 코드를 삽입 시켜서 엑셀파일로 attach 받는 내용이죠.

Response.ContentType = "application/vnd.ms-excel"
Response.AddHeader "Content-Disposition", "attachment; filename=파일이름.xls"

일반적으로 엑셀로 받고자 하는 내용들은 보통 리스팅(Listing)된 출력 자료들이 대부분입니다.
모두 『표 형식』을 기준으로 리스트를 뿌려주게 됩니다.
표 라는 것은 HTML 에서 TABLE 태그를 통해 이뤄집니다.

일반적으로 리스팅을 위한 코드의 구성은
SQL 쿼리 -> 결과값 레코드셋으로 변환 -> 테이블안에 출력의 순서가 됩니다.

여기서 엑셀 출력을 위해서 기존 파일에 위의 두줄의 코드만 추가해도 되겠지만, 좀 더 광범위하게 쓸 수 있도록 엑셀 출력 파일을 만들고자 한번 만들어봤습니다.
여러개의 엑셀 출력을 할 때 이 소스는 큰 도움이 될 것이라고 생각합니다.

중요 포인트는 두곳입니다.
# 테이블 칼럼 타이틀은 배열을 통해 나타냅니다.
# 레코드셋의 칼럼의 갯수 만큼 나타냅니다.

2가지를 특징을 통해 이 코드는 어디에다가 써도 유동적이게 돌아간다는 것입니다.
<%
' Array 인자와 SELECT 순서가 같아야 함
Dim arrMenuName
arrMenuName = Array("아이디", "이름", "주소", "전화번호", "혈액형")
strSQL = "SELECT 아이디, 이름, 주소, 전화번호, 혈액형 FROM 테이블"
SEToRs = oCn.Execute(strSQL,,1)
%>
<html>
<head>
<title>엑셀출력</title>
<metahttp-equiv="content-type" content="text/html; charset=euc-kr" />
</head>

<
body>
<table width="100%" border="1" cellspcaing="0" cellpadding="0">
<tr>
<%
' TH 로 bold 와 center를 한번에~
IF isArray(arrMenuName) Then
For i = 0 to UBound(arrMenuName)
    Response.Write "<th style=""background:#EEEEEE"">"& arrMenuName(i) & "</th>" & vbCrLF
Next
End IF
%>
</tr>    
<tr align="center">
<%
    SET oRs = oCn.Execute(strSQL,,1)
    IF oRs.State = 1 Then
        IF Not oRs.EOF Then
            Do While Not oRs.EOF
%>
<tr align="center">
<% For i = 0 to oRs.Fields.Count - 1 ' Recordset Column Count 만큼 TD 생성!!%>
<td><%= oRs(i)%></td>
<% Next %>
</tr>
<%
                oRs.MoveNext
            Loop
        End IF
        oRs.Close : SET oRs= Nothing
    End IF
%>
</tr>
</table>
</body>
</html>
<%
    IF oCn.State = 1 then 
       
oCn.Close 
        SET oCn = Nothing
   
End IF
%>

oCn, oRs는 각자 알맞는 개체명을 사용하도록 하세요.

써 넣고 보니까, 엑셀 작업과 관련되었다기 보다는 HTML의 표(TABLE)에 들어갈 데이터 생성에 도움을 준 것 같군요.



의도하고자 하는 바와 정반대의 길을 걷고 있는 군요 ^^;
2007. 06. 18. by Ssemi™

2007. 6. 18. 14:44