这种方法利用Excel组件直接导出excel文件,要求服务器端安装有微软office(Excel)程序,否则无法运行。这种方法适用于win2000sever系统的: <% set rs=server.createobject("adodb.recordset") sql="select * from mkusers" rs.open sql,objconn,1,1 Set ExcelApp =CreateObject("Excel.Application") ExcelApp.Application.Visible = True Set ExcelBook = ExcelApp.Workbooks.Add ExcelBook.WorkSheets(1).cells(1,1).value ="用户表" ExcelBook.WorkSheets(1).cells(2,1).value = "用户编号" ExcelBook.WorkSheets(1).cells(2,2).value = "登陆名" ExcelBook.WorkSheets(1).cells(2,3).value = "真实姓名" ExcelBook.WorkSheets(1).cells(2,4).value = "密码" cnt =3 do while not rs.eof ExcelBook.WorkSheets(1).cells(cnt,1).value = rs("provinceid") ExcelBook.WorkSheets(1).cells(cnt,2).value = rs("province") ExcelBook.WorkSheets(1).cells(cnt,3).value = rs("flag") ExcelBook.WorkSheets(1).cells(cnt,4).value = rs("id") rs.movenext cnt = cint(cnt) + 1 loop Excelbook.SaveAs "d:\yourfile.xls" '这个是数据导出完毕以后在D盘存成文件 ExcelApp.Application.Quit '导出以后退出Excel Set ExcelApp = Nothing '注销Excel对象 %> 方法二:使用文件组件 <% dim s,sql,filename,fs,myfile,x Set fs = server.CreateObject("scripting.filesystemobject") '--假设你想让生成的EXCEL文件做如下的存放 filename = Server.MapPath("order.xls") '--如果原来的EXCEL文件存在的话删除它 if fs.FileExists(filename) then fs.DeleteFile(filename) end if '--创建EXCEL文件 set myfile = fs.CreateTextFile(filename,true) StartTime = Request("StartTime") EndTime = Request("EndTime") StartEndTime = "AddTime between #"& StartTime &" 00:00:00# and #"& EndTime &" 23:59:59#" strSql = "select * from mksuers " Set rstData =conn.execute(strSql) if not rstData.EOF and not rstData.BOF then dim trLine,responsestr strLine="" For each x in rstData.fields strLine = strLine & x.name & chr(9) Next '--将表的列名先写入EXCEL myfile.writeline strLine Do while Not rstData.EOF strLine="" for each x in rstData.Fields strLine = strLine & x.value & chr(9) next myfile.writeline strLine rstData.MoveNext loop end if Response.Write "生成EXCEL文件成功,点击<a href="/" rel="external nofollow" order.xls"" target=""_blank"">下载!" rstData.Close set rstData = nothing Conn.Close Set Conn = nothing %>
方法三:
该方法不使用任何组件。而是将所有导出的数据在网页中以Table进行显示,然后增加如下两行代码,即可实现打开网页后直接下载保存为Excel:
Response.ContentType = "application/vnd.ms-excel" Response.AddHeader "Content-Disposition", "attachment;filename=TestExcel.xls"
完整示例如下:
<% Response.ContentType = "application/vnd.ms-excel" Response.AddHeader "Content-Disposition", "attachment;filename=TestExcel.xls" Set conn=server.CreateObject("adodb.connection") connstr="provider=microsoft.jet.oledb.4.0;data source="& Server.MapPath("/db.mdb") conn.open connstr set rs=server.createobject("adodb.recordset") sql="select * from xiaozu" rs.open sql,conn,1,1 %> <table border="1"> <tr> <td>小组名称</td> <td>学生名单</td> <td>所属学院</td> <td>实习景区</td> </tr> <% while not rs.eof and not rs.bof %> <tr> <td><%=rs("XZName")%></td> <td><%=rs("XZStudents")%></td> <td><%=rs("XZCollage")%></td> <td><%=rs("XZJD")%></td> </tr> <% rs.movenext wend %> </table> <% rs.close set rs = nothing conn.close set conn = nothing %>
|