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

웹 상의 이미지를 쉽게 서버에 올려주자 - Uptome with Firefox Extension & IE MenuExt

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

이 프로그램은 아래의 링크에서 아이디어를 얻었습니다
프로그램의 본래 목적은 불여우 부가기능(Firefox Extension)자신의 서버로 올리는 특징 입니다.

▶ 참조 Link
무화님의 『이미지를 쉽게 서버에 올려주는.. filebox』
- 무화님 본인의 서버에 올려야 하는 단점 커버

알릭님의 『외부이미지를 내계정으로 끌어오기』
- Snoopy Class를 통해 웹상의 이미지를 내 서버로 끌어올 수 있음



Upload to my Server - Firefox Extension
▶ 웹 상의 이미지를 브라우져를 통해 자신의 서버에 쉽게 올릴 수 있게 도와주는 프로그램

▶ 다운로드(Download)


알릭님의 『외부이미지를 내계정으로 끌어오기』 || 소스 다운로드(로그인 필요 없음)
-> 직접 링크를 통해서 다운로드 받을 수 있음 (단, 로그인 필요)


▶ 인스톨(Install)

◎ 자신의 서버 세팅
알릭님의 소스파일을 다운로드 후 아래와 같이 변경합니다.

사용자 삽입 이미지
17번째 줄의 패턴변수를  21번째 줄 처럼 변경해주시기 바랍니다. 

getImage.php를 함께 첨부
하여  자신의 서버의 적당한 곳에 놓습니다.
자신이 올린 곳의 주소를 기억하셨다가 아래 경로를 수정합니다. (IE)
사용자 삽입 이미지

◎ 인터넷 익스플로러 aka IE (Internet Explorer)

압축파일을 다운로드 후, 압축을 해제 하면
browser 폴더 아래에 IE 폴더 안의 ie-install.bat 배치 파일을 실행합니다.

사용자 삽입 이미지


◎ 파이어폭스 aka 불여우 (FireFox)
Firefox Extensions 불여우 부가기능을 설치 합니다.
동봉된 uptome.xpi를 불여우에 설치 합니다.
사용자 삽입 이미지

사용자 삽입 이미지


◆ 인스톨 후에는 브라우져를 모두 종료하신 후 재시작 시켜주십시오. ◆


▶ 사용법(How to use)

브라우져를 통해 웹서핑 중에 그림 파일에 마우스 오른쪽 버튼을 클릭하면
[그림 - 내 서버로 보내기] 메뉴가 있는 것을 발견하실 수 있습니다
.


▶ 당부사항

자신의 서버로 올린 파일을 정확하게 알 수 있게 갤러리 소스를 활용하시면 좀 더 멋지게 파일들을 관리 하실 수 있으실 것입니다.
좀 더 보완하거나 더 좋은 아이디어가 있으신 분들은 언제든지 컨택해주세요!


조금 더 활용도 높은 인터넷 웹서핑을 위하여~~
2007. 04. 03. by Ssemi™


2007. 4. 3. 11:09

자신의 게시판에 새 글이 올라오면 알려주는 알리미 프로그램

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

예전에 미니위니에서 무화님의 『자신의 게시판에 새 글이 올라오면 알려주는...』 이라는 게시물로 프로그램 하나가 올라온 적이 있습니다.

당시에는 오우!! 괜찮다!!! 라고 생각해서 써먹어봤는데, 좀 애로사항이 꽃피더군요. 가장 큰 문제는 역시 ASP로의 변환 문제였었죠. check.php 안에서 해결해볼려니 여간 어려운게 아니더라구요. Source Code가 있는게 아니니까요~

그래서 직접 만들어봤습니다. 사실 필요에 의해서 만들게 되었어요. 고객의 요구랄까요? 제가 있는 곳에서 정말로 필요한 프로그램이었거든요.
사실 웹 프로그래밍은 어느정도 하겠는데, 시스템 프로그래밍은 경험이 없어서 꽤나 고전했습니다. 거의 소스도 악전고투 후의 느낌이네요. ^^;
간신히 asp, php에 돌아가게 만들고, JSP는 음.. asp랑 php만 보면 형식은 같으니 하나 그대로 만들어 쓰시면 되겠네요;; (나몰라라 배째모드) 

이 프로그램은 무화님의 프로그램을 좀 더 업데이트 정도 라고 생각하시면 될것 같아요. 거의 모방 수준이죠. 하핫 그래도 모방은...창조의 어머니(??) 일까요? ^^;


Tell me the Article!!! - with C#.NET
▶ 자신의 게시판에 새 글이 올라오면 알려주는 알리미 프로그램

▶ 다운로드(Download)

프로그램 파일 및 setup 파일, music 파일, check 파일 및 설명서가 함께 동봉되어져 있습니다.

▶ 미리보기(Preview)

업데이트시

업데이트 되었을 때

왼쪽 클릭시

마우스 왼쪽 클릭시 서버 시간 보여줌


서버에서 파일이 바뀌거나 하게 되면 [그림1] 과 같이 알려주는 프로그램입니다.
DB에 직접 요청을 해서 알려주는게 아니라, 파일을 이용해서 하기 때문에 asp나 php가 돌아가는 계정이면 됩니다.
타이머를 이용해서 계속 확인하는 방법입니다.

프로그램을 실행 하게 된 후 오른쪽 트레이에 그림과 같은 아이콘이 하나 생기게 됩니다.

▶ 사용법(How to use)

# 파일 다운로드 후 적당한 곳에 압축을 풉니다.
총 4개의 파일이 필요합니다. (*필수 파일)
* TellmeAT.exe : 프로그램 실행 파일
* setup.txt : 설정 파일
* check.asp / check.php : 서버에서 check를 해줄 파일
* sound.wav : 노래 파일 - 업데이트가 되었을 시에 파일이 있다면 재생함
- 무조건 이름은 sound.wav 입니다.

# Check 파일 설정
일단 각 플랫폼에 맞는 Check파일을 선택하신 후, 서버로 파일을 올려줍니다.
파일은 퍼미션을 777로 바꿔줍니다. Windows 서버라면 IUSER_Machine 사용자에게 수정권한을 줘야 합니다.

해당 파일을 문서 편집기로 열어보면, 아래쪽에 현재 파일을 업데이트 할 수 있는 코드가 있습니다. 해당 코드를 가지고 글이 등록되거나 하는 부분에 추가합니다.

제로보드(php)를 예를 들자면
 1. check.php를 data 폴더에 복사
 2. write_ok.php 64번째 줄쯤에 touch(경로/check.php); 추가
하시면 됩니다.

asp를 예로 들자면
 1. check.asp를 복사
 2. insert into 쿼리가 실행되는 부분 다음에 Call CheckFileUpdate 프로시져 실행
(프로시져는 check.asp 안에 들어있음)

# Setup 파일을 설정합니다.
60
2
http://www.ssemi.net/check.php
http://www.ssemi.net
IE

1 : 서버에 접근하는 시간 (단위 : 초[second]) - 60초가 기본으로 1분당 1번씩 확인함
2 : 몇 분까지 알려줌 / 단위 : 분[Minute]  - Default 2분으로...
     새 게시물이 올라왔으면 2분(설정값)이내에 서버 접근을 시도(1번째 값) 하게 되면 알려주게 됩니다.
     본디 이 프로그램은 게시물을 봤는지, 안봤는지 확인 할 수 있는 신호가 없기 때문에 (DB에 직접 접근하지 않음)
     게시물이 올라왔을 시에는 주구장창!! 알려주게 됨을 방지하고자 시간을 설정해 둠
3 : 서버에 접근하는 주소의 경로 (check 파일이 있는 경로)
4 : 더블클릭시에 이동하고자 하는 주소  (게시판 주소 등등)
5 : 브라우져 설정 - 선택 값 (2종류) : IE, FF | 기본 : IE (인터넷 익스플로러)

# 트레이 아이콘 사용 방법
* 왼쪽 마우스 : [그림2]처럼 서버 시간을 알려줍니다.
* 더블 클릭 : setup에 넣은 주소로 브라우져 이동합니다
* 오른쪽 마우스 : 종료

▶ 필수조건(Important)

C#.NET으로 만들어서  .NET Framework 2.0 이 꼭 필요합니다.

▶ 당부사항

딱 적당히 만들었습니다;; 아이디어 있으시면 받겠습니다.
작년에 만들어 놓은 것을 좀 더 보기좋게 손 본 이후 버젼 업시킨후 공개합니다 ^-^)//

알리미와 함께 좀 더 좋은 관리적 환경을...
 2007. 01. 12. by Ssemi™
2007. 1. 12. 09:43