관리 메뉴

I LOVE EJ

Web(ASP, JSP, HTML)에서 엑셀 다운로드 - 두번째Web(ASP,JSP 등) 본문

Web Development/JSP

Web(ASP, JSP, HTML)에서 엑셀 다운로드 - 두번째Web(ASP,JSP 등)

BeOne 2008. 11. 17. 11:09

Web(ASP, JSP, HTML)에서 엑셀 다운로드의 첫번째 글에서는 엑셀로 저장하기 위한 설정에 대해 정리했다.

두번째 글에서는 데이터베이스에 있는 데이터를 단순하게 저장하는 것을 넘어 약간의 디자인을 넣는 방법에 대해 정리하고자 한다. 바탕색이나 글자의 색을 변경하고, 출력 서식을 적용하기 위한 코드를 정리하려고 한다.

먼저 첫번째 파란 색 부분을 보면, 데이터 내용에 앞서 상단에 타이틀을 넣는 부분이다.
HTML의 테이블을 생각해 본다면, colspan을 이용하여 셀을 합치고, 글자의 크기를 약간 키워서, 한 가운데 써 지도록 하면 괜찮을 듯 하다. 이를 위해서 colspan에는 Rs.Fields.Count라는 RecordSet의 속성을 이용했다. SQL에서 가져오는 컬럼의 수를 이용한 것이다. 다음 style에 font-size:18px;text-align:center;height:40px; 값을 주어 글자를 키우고, 한 가운데로 오게 하고 셀의 높이를 설정하였다.

다음 빨간 색으로 선택된 부분을 살펴보자. 이 부분은 각 컬럼의 이름이 들어가기 위한 부분으로,
아래 SQL에서 빨간색 한글로 된 4개의 값이 나올 것이다. 또한 style에 배경색과 정렬을 통해서 셀의 이름인
것을 엑셀에서도 보이도록 하였다. 이때 사용한 RecordSet의 속성은 Rs(i).Name 이다.

<%
   Dim Location
   Location = Request.Form("Location")
 
'/// 조회 데이터 가져오기
   SQL =       " SELECT NO AS 사번, NAME AS 이름, AGE AS 나이, LOCATION AS 지역 "
   SQL = SQL & " FROM MEMBERS WHERE LOCATION = '" & Location & "' "
   Rs.Open SQL, dbCon

   Response.Buffer = True
   Response.ContentType = "application/vnd.ms-excel"
   Response.CacheControl = "public"
   Response.AddHeader "Content-Disposition","attachment;filename=사용자관리.xls"

%>
<html>
<head><title>Excel</title>
<meta http-equiv="Content-Type" content="text/html; charset=euc-kr" /></head>
<body>
<%
 Response.Write "<table border=1 cellpadding=4>"
 Response.Write "<tr>"
 Response.Write "<td colspan='" & Rs.Fields.Count & "' style='font-size:18px;text-align:center;height:40px;'><b> 사용자 관리 </b></td>"
 Response.Write "</tr>"
 Response.Write "<tr>"
 For i = 0 To Rs.Fields.Count - 1
  Response.Write "<td style='background:#FFBBC0;text-align:center;'><b>" & Rs(i).Name & "</b></td>"
 Next
 Response.Write "</tr>"


 Do While Not Rs.EOF
  Response.Write "<tr>"
  For i = 0 To Rs.Fields.Count - 1
   If i = 0 Then  '// 서식 변환 : 최대 6자리(사번 앞에 0 붙이기)
    Response.Write "<td align='center' style='mso-number-format:000000'>" & Rs(i) & " </td>"
   Else  
    Response.Write "<td align='center'>" & Rs(i) & " </td>"
   End If
  Next
  Response.Write "</tr>"
  Rs.MoveNext
 Loop
 Response.Write "</table>"
%>
</body>
</html>