有一個客戶要求後台產生大數據量(每次產生數萬條)的會員卡號及密碼,金額等。產生的會員卡號及密碼要印製在卡片上發放給會員。產生大量資料在庫中,印製卡片的廠商要拿到資料進行印製怎麼辦呢?
於是我想到用程式碼將access中的資料產生Excel表格匯出。印這樣不就可以了嗎?在網路上找相關資料可都不盡如我意,就自己動手寫了這個程式。現放出來供大家分享!
下面為程式碼:
以下為引用的內容: <!--#include file=../conn.asp--> <% if session(china_admin)= then response.redirect login.asp dbpath=../ dblink dim filename,fs,myfile,x,m,n,o,link Set fs = server.CreateObject(scripting.filesystemobject) Set rs = Server.CreateObject(ADODB.Recordset) session(sql) = select * from china_car rs.Open session(sql),conn,1,1 n=1 '================================================== =================== '================================================== =============建立excel檔案系統 filename = Server.MapPath(car/CarTable&n&.xls) '這個是為了方便,新建一個CAR的資料夾,這個可以自己設啦 if fs.FileExists(filename) then'如果檔案存在,則覆蓋它。 fs.DeleteFile(filename) end if set myfile = fs.CreateTextFile(filename,true) '================================================== ========================= dim strLine,responsestr strLine= dim work,j,i str=序號|卡號|密碼|積分數|金額'這個是根據你的access資料表欄位設定。 work=split(str,|) j=ubound(work) i=0 o=0 do while not i>j strLine= strLine & work(i) & chr(9) i=i+1 loop myfile.writeline strLine Do while Not rs.EOF o=o+1 m=20000 strLine= for each x in rs.Fields strLine= strLine & x.value & chr(9) if o>=m*n then n=n+1 filename = Server.MapPath(car/CarTable&n&.xls) '這個可以自己設啦 if fs.FileExists(filename) then'如果檔案存在,則覆蓋它。 fs.DeleteFile(filename) end if set myfile = fs.CreateTextFile(filename,true) end if next myfile.writeline strLine rs.MoveNext loop rs.Close set rs = nothing conn.close set conn = nothing set myfile = nothing Set fs=Nothing ExcelPath=car/CarTable&n&.xls response.Write 匯出成功 response.write(<a href=' & server.URLEncode(ExcelPath) & '><font=red>下載</font></a>) %> |