2015. 12. 24. 15:20

1. 버젼에 맞게 AccessDatabaseEngine.exe를 설치한다.

=> OS버젼이 64bit일 경우 AccessDatabaseEngine_X64.exe를 설치한다.


2. sp_configure를 이용하여 아래의 옵션을 활성화 한다.


sp_configure 'show advanced options', 1;

GO

RECONFIGURE;

GO

sp_configure 'Ad Hoc Distributed Queries', 1;

GO


3. 엑셀다운로드 할 쿼리를 프로시져로 만든다.

-- OLEDB.4.0SQL2000 버젼임

CREATE PROC EXCEL

       @Path        VARCHAR(100)

AS

       DECLARE @SQL NVARCHAR(4000)

 

       SET @SQL = '

       INSERT INTO

       OPENDATASOURCE(''Microsoft.Jet.OLEDB.4.0'',''Data Source='+@Path+';Extended Properties=EXCEL 5.0'')...sheet1$

       (goodscode, goodsname, unit, incost, salecost)

       SELECT TOP 10 go_goodscode, go_goodsname, go_unit, gc_incost, gc_salecost

       FROM Goods_TB

       JOIN GoodsCost_TB ON gc_goodscode = go_goodscode

       '

       EXEC SP_EXECUTESQL @SQL

 

EXEC EXCEL 'D:\new\excelTest\goods.xls'



4. 원본엑셀파일을 만든후 원본을 가지고, 해당위치로 복사한다.

<%

fileCreate.asp

Set Fso = Server.CreateObject("Scripting.FileSystemObject")

File = "D:\new\excelTest\goods.xls"

If Fso.FileExists(File) then

  Fso.DeleteFile File                          ' 기존파일삭제

End If


' 원본파일을 해당위치로 복사한다(왜, 엑셀은 DELETE이 안됨)

Fso.CopyFile "D:\goods.xls","D:\new\excelTest\goods.xls"

' 프로시져 실행

Set Rs = Conn.Execute("dbo.EXCEL"


' 엑셀다운받기 

Response.redirect "fileDown.asp?strFileName=goods.xls"

%>



<%

fileDown.asp

문서정의타입을알수없음으로하게되면무조건다운로드시킨다.

다운로드시킬파일을정의한다.

Dim strFileName : strFileName = Request("strFileName")

 

Response.ContentType = "application/unknown"

Response.AddHeader "Content-Disposition","attachment; filename="&strFileName

 

‘ ADODB.Stream으로스트림을읽는다.

Set objStream = Server.CreateObject("ADODB.Stream")

objStream.Open

objStream.Type = 1

objStream.LoadFromFile "D:\new\excelTest\"&strFileName

strFile = objStream.Read

Response.BinaryWrite strFile

Set objStream = Nothing

%>

'ASP' 카테고리의 다른 글

웹과 쿼리분석기의 성능이 다를때..  (0) 2016.01.07
asp에서 euc-kr / utf-8 설정 상단 구문  (0) 2015.11.01
SQLInjection 방어하기  (0) 2015.10.29
정규식을 이용한 HTML 태그제거 함수  (0) 2015.03.19
CSRF 방어하기  (0) 2014.01.05
Posted by 팔개