저번에 올렸던 텍스트 파일을 디비에 입력하는 방법 다음으로 엑셀파일을 입력하는 방법이다.
(참조: http://blog.daum.net/lexerj/18126204)
방법차이가 크지는 않다. 단지 데이터 타입이 다른것 뿐이니 말이다.
코드는 아래와 같다.
<%
'일단 서버의 타임아웃을 넉넉하게 줘야한다. 혹시 데이터가 많으면 헛고생일 수 있다.
하지만 엑셀타입의 경우에는 그럴 경우가 별로 없을 수도 있다. 그건 아래에서 설명하겠다.
server.ScriptTimeOut=120000
'디비연결부분 각자~
strConnect = "Provider=SQLOLEDB.1;data Source=000.000.000.00;Initial catalog=DBNAME;User ID=sa;Password=pass;"
Set Dbcon = Server.CreateObject("ADODB.Connection")
Dbcon.Open(strConnect)
'중요한 것은 쿼리문이다.
'미리 만들어놓은 테이블에(T_table) insert문을 만들어주는데 여기까지는 별차이가 없다.
SQL="insert T_table (ecn,title,comp)"
'중요한건 아래부분이다.
'아래의 select 문은 엑셀파일에 관한 것이다. 즉 col1,col2,col3열은 엑셀의 첫번째줄에 있는 열제목인 것이다. 그리고 엑셀의 위치를 지정해주고(C:\test.xls), 엑셀의 sheet를 지정해준다(aa) 엑셀의 sheet는 엑셀 열면 하단에 있는 이름이다.
& " select col1,col2,col3 from"
& " OpenRowSet('Microsoft.Jet.OLEDB.4.0', "
& " 'Excel 8.0;DataBase=C:\test.xls;;;',aa$) "
Response.Write SQL & "<hr>"
st = Timer
Set Rs = Dbcon.Execute(SQL)
Set Rs = Nothing
et = Timer
Set Rs = Dbcon.Execute("Select count(*) From T_table")
cnt = Rs(0)
Set Rs = Nothing
Dbcon.Close
Set Dbcon = Nothing
Response.Write "총데이타 : " & FormatNumber(cnt,0) & "<br>"
Response.Write "작업시간 : " & et - st
%>
'WEB개발' 카테고리의 다른 글
오류메세지 Request.BinaryRead failed 의미.. (0) | 2010.07.26 |
---|---|
ASP HTTPERR 설명 (0) | 2010.07.05 |
GEOIP의 CSV파일 이용한 국가별 접속자 구분하기 (0) | 2010.06.29 |
ASP에서 텍스트파일 MSSQL DB에 입력하기 (0) | 2010.06.14 |
이미지에 마우스 올리고 내리고 할때 이미지의 스타일에 변화주기? (0) | 2009.12.30 |