把数据库中的内容提取出来变成EXCEL供下载,数据库中一些字符类型的数字,如身份证号.写入Excel后被用科学计数方式显示了,如何把单元格变成字符型.
附下载的代码.
<div align="center">
<br /><%if session("user")<>"" then%>
<%
dim filename,fs,myfile,xfunction getTemporaryFile(myFileSystem)  
dim tempFile,dotPos 
tempFile=myFileSystem.getTempName 
dotPos=instr(1,tempFile,".") 
getTemporaryFile=mid(tempFile,1,dotPos)&"xls" 
end function  dim filePos
Set fs = server.CreateObject("scripting.filesystemobject")
fileName=getTemporaryFile(fs)'取得一个临时文件名 
'--假设你想让生成的EXCEL文件做如下的存放
filePos=server.mappath("tmp\")&"\" '要存放打印临时文件的临时目录
filename = CStr(fileName)'--如果有EXCEL文件存在的话删除它
if fs.FileExists(filePos&"\*.xls")<>"" then
   fs.DeleteFile filePos&"\*.xls" 
end if'--创建EXCEL文件
set myfile = fs.CreateTextFile(filePos&filename,true)Set rs = Server.CreateObject("ADODB.Recordset")
'--从数据库中把你想放到EXCEL中的数据查出来
sql = "select b.FKLDM,b.FYXDM,b.FZYDM,b.FKSZTDM,a.*,Fzymc,d.fdsmc,d.Fdsdm from T_bmb a,T_lqb b,T_zydmb c,T_dsdmb d where a.Fzkh=b.Fzkh and b.FKLDM='2' and b.Fyxdm='"&right(session("FYHSJFW"),3)&"' and Fksztdm in ('6','7') and b.Fyxdm+b.fzydm=c.Fyxdm+c.fzydm and  SUBSTRING(a.FZkh,4,2)=d.fdsdm order by b.FZYDM,a.Fzkh"
rs.Open sql,conn
if rs.EOF and rs.BOF then
   Response.Write "数据库中暂时没有数据!"
else
dim strLine,responsestr
strLine=""
For each x in rs.fields
strLine= strLine & x.name & chr(9)
Next'--将表的列名先写入EXCEL
myfile.writeline strLineDo while Not rs.EOF
strLine=""for each x in rs.Fields
strLine= strLine & x.value & chr(9)
next
'--将表的数据写入EXCEL
myfile.writeline strLiners.MoveNext
loop
end if
rs.Close
set rs = nothing
conn.close
set conn = nothing
set myfile = nothing
Set fs=NothingResponse.Write ("请右键单击下载.")
response.write ("<a href='tmp/"&CStr(fileName)&"'>")
Response.Write CStr(fileName)
response.write ("</a>")%><%
else
  response.write ("对不起!用户不存在,请重新登录。")
end if%>