在ASP中将sql2005导出替EXCEL

在ASP中将sql2005导出为EXCEL
本帖最后由 dsxxthzj 于 2014-08-19 08:51:17 编辑
我是个SQL新手,目前需要将SQL2005中的查询结果导出到EXCEL中,在网上找到了导出ACCESS2010到EXCEL的
代码,但数据库换成SQL2005中后,导出不报错,可是在指定位置没有生成XLS,请大家帮忙解决一下。
以下是导出ACCESS2010到XLS的,速度很快,也不用设置单元格数据格式。

<%
dim a 
a=request.form("Del_check") '要导出的记录ID号集合
if trim(a)="" then
   ErrorMessage = "请先选择要导出的记录!"
   response.write(" <script>alert('"&ErrorMessage&"');history.go(-1)</script>")
   response.end
end if

if not isempty(request("Del_check")) then
   idlist=request("Del_check")

'删除再重新创建以用户名命名的文件夹,用于保存导出的XLS
Set file = CreateObject("Scripting.FileSystemObject")
TempFolder=server.mappath("down/to_excel/" & session("yhm"))
if file.FOLDERExists(TempFolder) then '若临时目录存在,则删除之
   on error resume next
   file.deleteFOLDER TempFolder
   if err.number<>0 then
      err.clear
       ErrorMessage = "删除临时文件夹发生错误!您可没有权限执行本项操作。"
       response.write(" <script>alert('"&ErrorMessage&"');history.go(-1)</script>")
      response.end
   end if
end if
   on error resume next
   file.createFOLDER TempFolder
   if err.number<>0 then
      err.clear
      ErrorMessage = "创建临时文件夹发生错误!您可没有权限执行本项操作。"
       response.write(" <script>alert('"&ErrorMessage&"');history.go(-1)</script>")
      response.end
   end if

'连接数据库
%>
<!--#include file="#comeon#.asp"-->
<%
'生成要导出的XLS文件名及下载地址
filename=Server.MapPath("down/to_excel/" & session("yhm")& "/" & hour(now())& minute(now())&second(now()) &  ".xls")   
downurl="down/to_excel/" & session("yhm")& "/" & hour(now())& minute(now())&second(now()) &  ".xls"  '下载地址  

'用下面这种方法导出XLS不仅速度快,而且对数据类型不会产生任何影响,比如身份证号,不会显示为科学计数法
   Set rs=Server.CreateObject("Adodb.Recordset")

'根据用户选择的列进行导出
'**********就是这几行代码,没有成功生成XLS,但在ACCESS中是可以的
   if session("zdyl")="" then
      sql="select * into [excel 8.0;database="&filename&"].sheet1 from 材料类别  where ID in("&idlist&")"
   else
      sql="select "&session("zdyl")&" into [excel 8.0;database="&filename&"].sheet1 from 材料类别  where ID in("&idlist&")"
   end if
  
   rs.open sql,conn,1,1
  rs.close
  set rs=nothing
  conn.close
  set conn=nothing 
  set file=nothing


end if   
%><p align="center"> </p>
<p align="center"><img border="0" src="Images/ok.png" width="88" height="86"><br><br><a href="<%=downurl%>">
<font size="2">点击此处下载导出的EXCEL文件</font></a></p>
 <p align="center">
<input type="button" value="返 回" onclick="javascript:window.history.go(-1);">
</p>

------解决方案--------------------
强烈建议用NOPI,既方便又快,没那么麻烦的