'connection'에 해당되는 글 1건

  1. 2009/08/11 ASP(VB script), OLEDB로 엑셀(Excel) 파일 연결하기 (1)
2009/08/11 16:02

일반적으로 사용하는 많이 사용하는 데이타베이스는 mySql이며 asp나 asp.net 으로 사이트를 구축하는 경우에는 MS-SQL을 주로 사용한다. 기타 기업용 DB는 오라클(Oracle)을 많이 사용하고 있지만 최근에는 MS-SQL 2005 사용이 점차 증가하는 추세다.

asp 플밍을 한지 100일 조금 안되었는데 asp로 mySql과 오피스 엑세스(Access)를 로컬 데이타베이스로 하여 간단하게 연결을 해본 경험으로 이번에는 오피스 엑셀(Excel) 파일을 asp로 연결해보았다.

엑셀은 여러 분야에서 참 많이 활용되고 있는 재미난 도구인데 비주얼베이직 구문을 사용하는 asp 프로그래밍을 조금만 이해하면, 엑셀은 데이타베이스로 사용하고 웹브라우저로 엑셀 파일에 들어있는 내용들을 요리할 수 있게 된다. 오늘은 asp로 엑셀파일에 있는 내용을 웹브라우저로 불러내볼 것이다.

기본적으로 알아야 할 개념은 엑셀파일명은 데이터베이스 이름, 시트 이름은 테이블 이름이라 생각하면 된다.

또한 제어판에서 ODBC 설정을 할 때 Microsoft Excel Driver를 선택하여 시스템 DSN으로 잡아주자. 필자는 xls라는 이름으로 시스템 DSN을 세팅하였다.

이제 구문을 하나씩 들여다보자.
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\폴더경로\엑셀파일명.xls;Extended Properties='Excel 8.0;HDR=YES'
매우 중요해서 빨간색으로 표시했다. 반드시 이렇게 사용해야 한다.

이 구문을 strConnection 이라는 변수에 담아서 연결한다. 아래 소스를 보자.

    strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\폴더경로\엑셀파일명.xls;Extended Properties='Excel 8.0;HDR=YES'"
==> 이와 같이 변수(밥통)에 담아서 공급자 연결을 한다.

    Set xls_con = Server.CreateObject("ADODB.Connection")
     xls_con.ConnectionString = strConnection
        xls_con.open
==> asp프로그램을 조금이라도 해봤다면 쉽게 이해할 수 있는 구문이다. ADODB.Connection 개체를 사용하여 엑셀파일과 연결한다.

        xls_qry = "Select * from [사용할 시트 이름$]"
    Set rs = Server.CreateObject("ADODB.Recordset")
     rs.Open xls_qry, xls_con
==> sql을 사용할 때 데이터 내용을 불러오는 구문이 Select다. 엑셀파일은 데이터베이스, 시트는 테이블이라고 앞서 말한것과 같이 테이블 명 대신에 시트이름을 넣어준다. 반드시 시트이름 뒤에는 $를 표기한다.  [시트이름$] 이렇게 말이다.

그리고 역시 레코드셋을 생성하여 열고(Open) 쿼리를 실행시킨다. 여기서는 xls_qry라는 변수에 쿼리문을 담았다.

가져온 값들은 레코드셋에 저장되어 있기 때문에 rs("필드명")으로 화면에 뿌려주면 되는 것이다.

작업이 끝나면 개체들은 close 하고 nothing으로 그릇을 비워야 한다.

어떤가?  아주 쉽지 않은가?
해보면 별것 아닌데 몇일간 msdn사이트를 뒤지고 책을 뒤져가며 고민하고 얻어낸 결과물이다.



아래 전체 소스 - 참고하시기 바람 (xlsTest.asp 와 같이 파일명.asp로 저장해서 활용해야 함은 당연한 것이니 질문하지 말 것. asp 파일이니 당연히 로컬에서 iis는 잘 돌고있어야 한다. 지극히 당연한 것이다. 왜 안되냐고 질문하지 않기 바람. 쩝....)

<%

    strConnection = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=F:\폴더경로\엑셀파일명.xls;Extended Properties='Excel 8.0;HDR=YES'"

    Set xls_con = Server.CreateObject("ADODB.Connection")
     xls_con.ConnectionString = strConnection
        xls_con.open

        xls_qry = "Select * from [시트이름$]"
    Set rs = Server.CreateObject("ADODB.Recordset")
     rs.Open xls_qry, xls_con
%>

<table border='1'>
  <tr>
    <td>번호</td>
 <td>이름</td>
 <td>하는 일</td>
 <td>핸펀1</td>
 <td>기타</td>
  </tr>
<% Do Until rs.eof %>
  <tr>
    <td><%=rs("번호")%></td>
    <td><%=rs("이름")%></td>
    <td><%=rs("하는 일")%></td>
    <td><%=rs("핸펀1")%></td>
    <td><%=rs("기타")%></td>
  </tr>
<%
   rs.movenext
   Loop
%>
</table>



2009.08.11.화  헬기조종사 휴이(huey)

저작자 표시 비영리 변경 금지
크리에이티브 커먼즈 라이선스
Creative Commons License
Posted by 휴이(huey)

댓글을 달아 주세요