找回密码
 会员注册
查看: 191|回复: 0

ASP中把数据导出为Excel的三种方法

[复制链接]

250

主题

1

回帖

819

积分

管理员

积分
819
发表于 2024-2-29 08:44:14 | 显示全部楼层 |阅读模式

方法一:用excel组件

    这种方法利用Excel组件直接导出excel文件,要求服务器端安装有微软office(Excel)程序,否则无法运行。

    完整示例如下:

  1. Set conn=server.CreateObject("adodb.connection")
  2. connstr="provider=microsoft.jet.oledb.4.0;data source="& Server.MapPath("/db.mdb")
  3. conn.open connstr
  4. set rs=server.createobject("adodb.recordset")
  5. sql="select * from xiaozu"
  6. rs.open sql,conn,1,1
  7. Set ExcelApp =CreateObject("Excel.Application")
  8. ExcelApp.Application.Visible = True
  9. Set ExcelBook = ExcelApp.Workbooks.Add
  10. ExcelBook.WorkSheets(1).cells(1,1).value = "小组名称"
  11. ExcelBook.WorkSheets(1).cells(1,2).value = "学生名单"
  12. ExcelBook.WorkSheets(1).cells(1,3).value = "所属学院"
  13. ExcelBook.WorkSheets(1).cells(1,4).value = "实习景区"
  14. cnt = 2
  15. do while not rs.eof
  16. ExcelBook.WorkSheets(1).cells(cnt,1).value = rs("XZName")
  17. ExcelBook.WorkSheets(1).cells(cnt,2).value = rs("XZStudents")
  18. ExcelBook.WorkSheets(1).cells(cnt,3).value = rs("XZCollage")
  19. ExcelBook.WorkSheets(1).cells(cnt,4).value = rs("XZJD")
  20. rs.movenext
  21. cnt = cint(cnt) + 1
  22. loop
  23. Excelbook.SaveAs "d:\yourfile.xls" '这个是数据导出完毕以后在D盘存成文件
  24. ExcelApp.Application.Quit '导出以后退出Excel
  25. Set ExcelApp = Nothing '注销Excel对象
  26. rs.close
  27. set rs = nothing
  28. conn.close
  29. set conn = nothing
复制代码

方法二:使用文件组件

    这种方法导出的是文本文件,只不过后缀名改成了xls。

    完整示例如下:

  1. Set conn=server.CreateObject("adodb.connection")
  2. connstr="provider=microsoft.jet.oledb.4.0;data source="& Server.MapPath("/db.mdb")
  3. conn.open connstr
  4. dim s,sql,filename,fs,myfile,x
  5. Set fs = server.CreateObject("scripting.filesystemobject")
  6. '--假设你想让生成的EXCEL文件做如下的存放
  7. filename = Server.MapPath("order.xls")
  8. '--如果原来的EXCEL文件存在的话删除它
  9. if fs.FileExists(filename) then
  10. fs.DeleteFile(filename)
  11. end if
  12. '--创建EXCEL文件
  13. set myfile = fs.CreateTextFile(filename,true)
  14. StartTime = Request("StartTime")
  15. EndTime = Request("EndTime")
  16. StartEndTime = "AddTime between #"& StartTime &" 00:00:00# and #"& EndTime &" 23:59:59#"
  17. strSql = "select * from xiaozu "
  18. Set rstData =conn.execute(strSql)
  19. if not rstData.EOF and not rstData.BOF then
  20. dim strLine,responsestr
  21. strLine=""
  22. For each x in rstData.fields
  23. strLine = strLine & x.name & chr(9)
  24. Next
  25. '--将表的列名先写入EXCEL
  26. myfile.writeline strLine
  27. Do while Not rstData.EOF
  28. strLine=""
  29. for each x in rstData.Fields
  30. strLine = strLine & x.value & chr(9)
  31. next
  32. myfile.writeline strLine
  33. rstData.MoveNext
  34. loop
  35. end if
  36. Response.Write "生成EXCEL文件成功,点击<a href='order.xls' target='_blank'>下载!"
  37. rstData.Close
  38. set rstData = nothing
  39. Conn.Close
  40. Set Conn = nothing
复制代码

方法三:

    该方法不使用任何组件。而是将所有导出的数据在网页中以Table进行显示,然后增加如下两行代码,即可实现打开网页后直接下载保存为Excel:

    Response.ContentType = "application/vnd.ms-excel"
    Response.AddHeader "Content-Disposition", "attachment;filename=TestExcel.xls"

    完整示例如下:

  1. <%
  2. Response.ContentType = "application/vnd.ms-excel"
  3. Response.AddHeader "Content-Disposition", "attachment;filename=TestExcel.xls"
  4. Set conn=server.CreateObject("adodb.connection")
  5. connstr="provider=microsoft.jet.oledb.4.0;data source="& Server.MapPath("/db.mdb")
  6. conn.open connstr
  7. set rs=server.createobject("adodb.recordset")
  8. sql="select * from xiaozu"
  9. rs.open sql,conn,1,1
  10. %>
  11. <table border="1">
  12. <tr>
  13. <td>小组名称</td>
  14. <td>学生名单</td>
  15. <td>所属学院</td>
  16. <td>实习景区</td>
  17. </tr>
  18. <%
  19. while not rs.eof and not rs.bof
  20. %>
  21. <tr>
  22. <td><%=rs("XZName")%></td>
  23. <td><%=rs("XZStudents")%></td>
  24. <td><%=rs("XZCollage")%></td>
  25. <td><%=rs("XZJD")%></td>
  26. </tr>
  27. <% rs.movenext
  28. wend
  29. %>
  30. </table>
  31. <%
  32. rs.close
  33. set rs = nothing
  34. conn.close
  35. set conn = nothing
  36. %>
复制代码


来源:https://blog.csdn.net/qhdzj87/article/details/122541475
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 会员注册

本版积分规则

QQ|手机版|心飞设计-版权所有:微度网络信息技术服务中心 ( 鲁ICP备17032091号-12 )|网站地图

GMT+8, 2024-12-25 13:23 , Processed in 0.314134 second(s), 26 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表