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 

posted on 2008-09-10 17:04  truejob  阅读(555)  评论(0编辑  收藏  举报

导航