阿余常要把各种各样的查询结果输出到EXCEL中,所以做了下面这段小程序,用于把一个SQL的SELECT查询出的结果输出为EXCEL格式文件,这个程序你只要设好用于取得一个记录集的SQL的SELECT查询语句和一个文件名,程序就能输出EXCEL格式文件了,这个程序一共由三个文件构成,第一个文件的文件名为:toexcel.asp是主文件,内容如下:
<%
'前面是和来链接到数据库,请自行书写相关语句,此处略过
sql=session("toexcelsql")  '这里是要输出EXCEL的查询语句,如 "SESECT * FORM CAI WHERE 性别='女'"
filename="excel.xls"   ' 要输出的EXCEL文件的文件名, 你只要改以上两句就行了,其它的都不要改.
'你只要修改以上两变量就行了.其它的我都做好了.
call toexcel(FILENAME,sql)
set conn=nothing
function ReadText(FileName)  '这是一个用于读出文件的函数
 set adf=server.CreateObject("Adodb.Stream")
 with adf
  .Type=2
  .LineSeparator=10
  .Open
  .LoadFromFile (server.MapPath(FileName))
  .Charset="GB2312"
  .Position=2
  ReadText=.ReadText
  .Cancel()
  .Close()
 end with
 set ads=nothing
end function
sub SaveText(FileName,Data)  '这是一个用于写文件的函数
 set fs= createobject("scripting.filesystemobject") 
    set ts=fs.createtextfile(server.MapPath(FileName),true)
    ts.writeline(data)
    ts.close
    set ts=nothing
    set fs=nothing
end sub
sub toexcel(filename,sql)  '这是一个根据SQL语句和FILENAME生成EXCEL文件
  Set rs=Server.CreateObject("ADODB.RecordSet") 
  rs.Open sql,conn,1,3
  TOEXCELLR="
"
  set myfield=rs.fields
  dim fieldname(50)
  for i=0 to myfield.count-1
     toexcellr=toexcellr&""&MYFIELD(I).NAME&" | "
     fieldname(i)=myfield(i).name
     if myfield(i).type=135 then datename=datename&myfield(i).name&","
  next
  toexcellr=toexcellr&"
"