asp如何动态的将查询数据生成excel
'*************************************************************************************************************
'----------------------------------------- asp 导出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)
'Set rs = Server.CreateObject("ADODB.Recordset")
'--从数据库中把你想放到EXCEL中的数据查出来
'sql = "select * from Tb_Execl order by id desc"
'rs.Open sql,conn
StartTime = Request("StartTime")
EndTime = Request("EndTime")
StartEndTime = "AddTime between #"& StartTime &" 00:00:00# and #"& EndTime &" 23:59:59#"
strSql = "select * from ljphs200 "
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
'--将表的值先写入EXCEL
myfile.writeline strLine
rstData.MoveNext
loop
end if
Response.Write "生成EXCEL文件成功,点击 <a href=""order.xls"" target=""_blank"">下载 </a>!"
rstData.Close
set rstData = nothing
Conn.Close
Set Conn = nothing
'*************************************************************************************************************
'----------------------------------------- asp 读Excel表 ----------------------------
'*************************************************************************************************************
Dim PatnNow
PatnNow="uploadfile/ultrawebgrid1.xls"
'=====================ASP读取EXCEL注事项===========================
'i)将Excel97或Excel2000生成的XLS文件(book)看成一个数据库,其中的每一个工作表(sheet)看成数据库表
'ii)ADO假设Excel中的第一行为字段名.所以你定义的范围中必须要包括第一行的内容
'iii)Excel中的行标题(即字段名)不能够包含数字. Excel的驱动在遇到这种问题时就会出错的。例如你的行标题名为“F1”
'iiii)如果你的Excel电子表格中某一列同时包含了文本和数字的话,那么Excel的ODBC驱动将不能够正常, 处理这一行的数据类型,
'你必须要保证该列的数据类型一致
'===========================================================
Dim ConnXls,Driver,DBPath,Rs
' 建立Connection对象
Set ConnXls = Server.CreateObject("ADODB.Connection")
Driver = "Driver={Microsoft Excel Driver (*.xls)};"
DBPath = "DBQ=" & Server.MapPath(PatnNow)
'调用Open 方法打开数据库
ConnXls.Open Driver & DBPath
'DSN连接方式
'ConnXls.Open "Dsn=test"
'注意 表名一定要以下边这种格试 "[表名$]" 书写
Sql="Select * From [Sheet1$] "
Set Rs=ConnXls.Execute(Sql)
IF Rs.Eof And Rs.Bof Then
Response.write " <br> <br>没有找到您需要的数据!!"
Else
Do While Not Rs.EOF
'conn.execute"insert into YuFuFei (HaoMa,YuENow,YuENowTime,YuEOld,YuEOldTime,State) values ('"&Rs("号码")&"','"&Rs("当前余额(分)")&"','"&Rs("当前余额时间")&"','"&Rs("上次余额(分)")&"','"&Rs("上次余额时间")&"','"&Rs("当前状态")&"')"
'Response.write Rs("接入号")&" <br>"
Rs.MoveNext
Loop
End IF
Rs.Close
Set Rs=nothing
ConnXls.Close
Set ConnXls=Nothing
Response.Write "<br/>----------------------------------成功!----------------------------------"
conn.close
set conn=nothing