2009년 6월 23일 화요일

Asp로 엑셀파일읽기

<---- 내용 ---->
아마도 모든 Excel을 뿌려주는데는 무리가 없을것입니다.
저번에 올렸던 자료와는 다르게,,
미리 Excel 자료에서 가공을 해주어야 할 부분도 없습니다.~
ADO 를 쓰지도 않습니다~
병합된 셀도 병합을 해서 뿌려줍니다. (잔머리좀 썼죠)

단,,, 서버에 Excel 이 깔려 있어야 합니다.(당연하죠...)

부디 도움이 되시길 바라며...

만약,, 불러온 파일을 DB 에 저장하시려면,,
병합된 셀을 처리하는부분을 없애고 그냥 DB 에 저장하도록 하시면 되겠네요..

질문사항은 메일로 주시던가,, 답글을 달아주세요.
쪽지로 질문하시면,, 왔는지 안왔는지 모르거든요.


* selectForm.asp 의 내용

Excel 파일 보여주기<p>
원하는 Excel 파일을 불러온후 OK 를 누르세요 <p>

<form action=showExcel.asp method=post>
<input type=file name=xlsFile>
<br>
<input type=submit value=OK>
</form>

* showExcel.asp 의 내용

<%
'----------------------------------------------------------------------
' 설명 : 엑셀파일을 불러서 HTML 형식으로 뿌려줌
' 날짜 : 2001/12/20
' Author : ilikefox@yahoo.com
'----------------------------------------------------------------------

'on error resume next
xlsFile = Request.Form("xlsFile")

Set objApp = CreateObject("Excel.Application") '엑셀 객체 생성
set objWorkbooks = objApp.Workbooks 'WorkBooks 객체 생성
Set objWorkbook = objWorkbooks.Open(xlsFile) 'Excel 파일 Open
Set objWorksheet = objWorkbook.Worksheets(1) 'Worksheet 객체 생성
Set objRange = objWorksheet.UsedRange '사용된 영역 객체 생성
aData= objRange.value '사용된 영역의 값들을 2차원배열 aData로 넘김
%>

<table border=1>
<%
For i=1 to uBound(aData, 1) ' 배열의 끝까지 행루프
%>
<tr>
<%
For j=1 to uBound(aData, 2) ' 배열의 끝까지 열루프
Set objCell = objWorksheet.Cells(i, j) '셀값을 객체로 선언

''''''''''' 병합되어있는 곳이면 '''''''''''''
If objCell.MergeCells then
aM = objCell.MergeArea.value

If uBound(aM,2) <> 1 and uBound(aM,1) <> 1 Then
'가로 세로 모두 병합된경우
If not isempty(objCell.value) then
%>
<td align="center" colspan="<%=uBound(aM,2)%>"
rowspan="<%=uBound(aM,1)%>"><%=objCell.value%></td>
<%
End If
ElseIf uBound(aM,2) <> 1 Then ' 가로로 병합되어있다면
If not isempty(objCell.value) then
%>
<td align="center" colspan="<%=uBound(aM,2)%
>"><%=objCell.value%></td>
<%
End If
ElseIf uBound(aM,1) <> 1 Then ' 세로로 병합되어있다면
If not isempty(objCell.value) then
%>
<td align="center" rowspan="<%=uBound(aM,1)%
>"><%=objCell.value%></td>
<%
End If
End If
' 참고사항 --> 병합된 셀의 값 : eCell.MergeArea.Cells(1,1)

''''''''''' 병합된곳이 아니면 그냥 뿌려줌 '''''''''''
Else
%>
<td>
<% If IsEmpty(aData(i, j)) Then %>

<% Else %>
<%=aData(i, j)%>
<% End If %>
</td>
<%
''''''''''''' 병합인지 아닌지 If 절 끝 '''''''''''
End If
%>
<%
Next ' 배열의 끝까지 열 루프 끝
%>
</tr>
<%
Next ' 배열의 끝까지 행 루프 끝
%>
</table>

<%
'아래 사항들은 반드시 적어서 메모리에서 없애 주어야 합니다.
'그렇지 않으면 메모리에 계속상주하면서 열린 문서는 잠기게 됩니다.
Set objCell = Nothing
Set objRange = Nothing
Set objWorksheet = Nothing
objWorkbook.Close
Set objWorkbook = Nothing
Set objWorkbokks = Nothing
Set objApp = Nothing
%>

============================================================================


이건 제가 고친 소스입니다. 대략 생각나는대로 고쳤습니다============================================================================

* selectForm.asp 의 내용

Excel 파일 보여주기<p>
원하는 Excel 파일을 불러온후 OK 를 누르세요 <p>

<form action=showExcel.asp method=post>
<input type=file name=xlsFile> <!-- 이거 필요 없습니다. -->
<br>
<input type=submit value=OK>
</form>



* showExcel.asp 의 내용

<%
'----------------------------------------------------------------------
' 설명 : 엑셀파일을 불러서 HTML 형식으로 뿌려줌
' 날짜 : 2001/12/20
' Author : ilikefox@yahoo.com
'----------------------------------------------------------------------

<!-- include file = db.asp --> <!-- 추가부분 -->


'on error resume next

xlsFile = "D:\aaa\bbb.xls" <!--추가 .. 서버의 경로가 지정되 있어야 합니다. -->
<!-- selectForm.asp에서 받은 파일명은 유저컴퓨터에 있는 파일 밖에 경로가 지정되지 않습니다. -->

Set objApp = CreateObject("Excel.Application") '엑셀 객체 생성
set objWorkbooks = objApp.Workbooks 'WorkBooks 객체 생성
Set objWorkbook = objWorkbooks.Open(xlsFile) 'Excel 파일 Open
Set objWorksheet = objWorkbook.Worksheets(1) 'Worksheet 객체 생성
Set objRange = objWorksheet.UsedRange '사용된 영역 객체 생성
aData= objRange.value '사용된 영역의 값들을 2차원배열 aData로 넘김
%>

<%
%>

<table border=1>
<%
For i=1 to uBound(aData, 1) ' 배열의 끝까지 행루프
%>
<tr>
<%
For j=1 to uBound(aData, 2) ' 배열의 끝까지 열루프
Set objCell = objWorksheet.Cells(i, j) '셀값을 객체로 선언
%>

<td>
<% If IsEmpty(aData(i, j)) Then %>

<% Else %>
<%=aData(i, j)%>
<% End If %>
</td>

<%
Next ' 배열의 끝까지 열 루프 끝

<!--추가부분-->
sql = "insert t_emp_info(column1,column2,column3......) "
sql = sql & " values('"&aData(i,1)&"','"&aData(i,2)&"','"&aData(i,2)&"',......)
db.execute(sql)
%>
</tr>
<%
Next ' 배열의 끝까지 행 루프 끝
%>
</table>

<%
'아래 사항들은 반드시 적어서 메모리에서 없애 주어야 합니다.
'그렇지 않으면 메모리에 계속상주하면서 열린 문서는 잠기게 됩니다.
Set objCell = Nothing
Set objRange = Nothing
Set objWorksheet = Nothing
objWorkbook.Close
Set objWorkbook = Nothing
Set objWorkbokks = Nothing
Set objApp = Nothing

db.close
set db = nothing
%> 

2009년 6월 20일 토요일

그냥 나를 판사 시켜줘~~

내가 재판해도 늬들보다 낫겠다.

옳고 그름의 잣대가 도덕적상식과 괴리된채,
중요한 판단에 영향을 미치는 부분만 애매모호한 표현을 쓴 법전에 의거
귀에도 걸고, 코에도 걸고,
여기에도 안나오면 국민의견이랍시고 쥐들 주변인 의견을 전체인양 호도하고...
그렇다면,
전문 지식인과 비전문 범부와 다를게 무어냐

그냥 나를 판/검사 시켜줘~ 내가 늬들보다 훨~~~씬 잘할 자신 있다.


檢 흘리면 받아쓰고, 여론재판·사상검열 논란

2009년 6월 17일 수요일

네이버 블로그를 그리워하며...

작년 중순부터 네이버에서 다른 곳으로 이사를 하겠다고 벼르며 여러 블로그를 탐색하던중...

트렌드를 외치면서 티스토리로 이사를 했건만 ㅜ.ㅜ

 

아~~ 그리운 트래픽 폭탄이여~

 

적막한 산속에 집을 지어놓은 것과 같이 오가는 이는 나그네들 뿐일세...

 

외로워~외로워~~ㅠ,,ㅠ

 

결국 네이버 블로그도 티스토리 블로그도 관리소홀....

 

 

 

 

몇일전 웹사이트를 검색하던중  텍스트규브닷컴이 베타테스트를 한다길래

 

나도 한번~~하며 블로그를 개설하였다.

 

흠, 티스토리를 통째로 뜰수 있단다. 우훗 ㅡ_ㅡ 굿b

 

그럼 아직도 이사를 못시킨 네이버블로그는 ....

 

고맙게도  Jeidee 님이 네이버 블로그를 통째로 뜨는 플그램을 만들어 주셨다.

 

............허나 미디어링크와 첨부파일이..ㄷㄷㄷㄷㄷ

 

그래도 이게 어디야 그냥그냥그냥 ㅎㅎ

 

산더미 같은 엑박들은 대충 한쪽으로 밀어두고 이사를 마쳤다. 끝~~~

 

블로그 여기 저기를 둘러보니..... 오홋

 

관심블로그 등록기능

 

요고요고 맘에 든다능

 

.................

 

그래도

 

나의 창고형 블로그에

 

트래픽폭탄은 네버+ 에버+ 절대  없으리니~~~

 

하여 가끔 아니 자주 네이버 블로그가 그리워질듯 하다.

 

 

 

<참고>

Naver2Tistory 매뉴얼 << 네이버블로그 백업