ClassicASP 디비자료를 엑셀(xls,xlsx) 추출오류날때 txt로 내려받기
페이지 정보
본문
xls 또는 xlsx 로 디비 자료를 내려받을때 일정개수 이상의 것이 다운로드가 안될때는 아래와 같이 txt 형식으로 다운로드 하면 문제없이 다운로드가 됩니다.
관리하는 업체의 회원자료 12,000건을 내려받기를 하는 과정에서 20MB 용량으로 xls 파일이 생성되지만 엑셀로 불러오면 300여개 자료만 보이고 나머지는 보이지 않는 현상발생
메모장으로 해당파일을 열어본 결과 50만라인의 데이타가 확인되지만 엑셀의 버그인지 자료가 정상적으로 보이지 않아서 아래와 같이 불필요한 테그를 제거하고 데이타만 깨끗하게 내려받는 코드 작성하게 되었습니다.
<%
dim connect
connect="provider=sqloledb;server=디비주소;Database=디비네임;UID=디비아이디;PWD=디비비밀번호;"
dim filename, tablename, TotRecord, TotPage
filename = "happyjung"
tablename = "디비테이블"
response.buffer=True
response.cachecontrol="public"
response.addheader "content-disposition","attachment; filename="&filename&"_"&date()&".txt"
set rs = SERVER.CreateObject("ADODB.Recordset")
rs.CursorType = 3
sql = "select * from "& tablename
sql = sql & " order by idx desc"
rs.Open sql, ConnString
if (rs.bof and rs.eof) then
TotRecord = 0
TotPage = 0
else
TotRecord = rs.RecordCount
TotPage = rs.PageCount
end if
%>번호|고유번호|회원아이디|regdate<br><%
IF (RS.BOF and RS.EOF) Then
Else
dim hp_no : hp_no = "1"
Do while (NOT RS.EOF) 'and (RCount > 0 )
%>
<%=hp_no%>|<%=rs("idx")%>|<%=rs("member_id")%>|<%=rs("regdate")%><br>
<%
RS.MoveNext
hp_no = hp_no + 1
Loop
End if
RS.Close
Set RS=nothing
%>
1. 다운로드
파일다운로드 (ex.happyjung_2014-04-22.txt)
2. 열기
엑셀 > 열기 > 모든파일(*.*) > 파일선택 (happyjung_2014-04-22.txt)
3. 텍스트 마법사 - 3단계 중 1단계
3-1. 원본 데이타형식 : 구분 기호로 분리됨(D)
3-2. 원본 파일: 949 : 한국어
4. 텍스트 마법사 - 3단계 중 2단계
4-1. 구분 기호 : 쉼표(C)
4-2. 연속된 구분 기호를 하나로 처리(R)
4-3. 텍스트 한정자(Q) : '
5. 텍스트 마법사 - 3단계 중 3단계
5-1. 열 데이터 서식 : 텍스트
6. 마침
관리하는 업체의 회원자료 12,000건을 내려받기를 하는 과정에서 20MB 용량으로 xls 파일이 생성되지만 엑셀로 불러오면 300여개 자료만 보이고 나머지는 보이지 않는 현상발생
메모장으로 해당파일을 열어본 결과 50만라인의 데이타가 확인되지만 엑셀의 버그인지 자료가 정상적으로 보이지 않아서 아래와 같이 불필요한 테그를 제거하고 데이타만 깨끗하게 내려받는 코드 작성하게 되었습니다.
<%
dim connect
connect="provider=sqloledb;server=디비주소;Database=디비네임;UID=디비아이디;PWD=디비비밀번호;"
dim filename, tablename, TotRecord, TotPage
filename = "happyjung"
tablename = "디비테이블"
response.buffer=True
response.cachecontrol="public"
response.addheader "content-disposition","attachment; filename="&filename&"_"&date()&".txt"
set rs = SERVER.CreateObject("ADODB.Recordset")
rs.CursorType = 3
sql = "select * from "& tablename
sql = sql & " order by idx desc"
rs.Open sql, ConnString
if (rs.bof and rs.eof) then
TotRecord = 0
TotPage = 0
else
TotRecord = rs.RecordCount
TotPage = rs.PageCount
end if
%>번호|고유번호|회원아이디|regdate<br><%
IF (RS.BOF and RS.EOF) Then
Else
dim hp_no : hp_no = "1"
Do while (NOT RS.EOF) 'and (RCount > 0 )
%>
<%=hp_no%>|<%=rs("idx")%>|<%=rs("member_id")%>|<%=rs("regdate")%><br>
<%
RS.MoveNext
hp_no = hp_no + 1
Loop
End if
RS.Close
Set RS=nothing
%>
1. 다운로드
파일다운로드 (ex.happyjung_2014-04-22.txt)
2. 열기
엑셀 > 열기 > 모든파일(*.*) > 파일선택 (happyjung_2014-04-22.txt)
3. 텍스트 마법사 - 3단계 중 1단계
3-1. 원본 데이타형식 : 구분 기호로 분리됨(D)
3-2. 원본 파일: 949 : 한국어
4. 텍스트 마법사 - 3단계 중 2단계
4-1. 구분 기호 : 쉼표(C)
4-2. 연속된 구분 기호를 하나로 처리(R)
4-3. 텍스트 한정자(Q) : '
5. 텍스트 마법사 - 3단계 중 3단계
5-1. 열 데이터 서식 : 텍스트
6. 마침
댓글목록
등록된 댓글이 없습니다.