ASP access导出到Excel

<!--#include file="../include/buyok_shop_30_conn.asp"-->
<!--#include file="../chopchar.asp"-->
<!--#include file="checkadmin.asp"-->
<% 
 
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 services "
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 
        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
%>

 

 

Excel表中出现错行现象

 

写入数据的时候,excel默认是以“,”为分隔符,一遇到“,”,它就会自动将数据写到下一个字段项,因此,如果你的数据中出现了半角的逗号(例如:联系方式里面有逗号),那么逗号后面的内容将会写到下一格,这样依此往后推,那么写入的数据就会错位,一片混乱。如果你将留言版的内容写入,就会碰到这样的问题,解决的办法就是用替换函数。
function HTMLEncode(fString)
if not isnull(fString) then
fString = Replace(fString,",", ",")
fString = Replace(fString,chr(10), ",")
fString = Replace(fString,chr(13), " ")
fString = Replace(fString,"<br>", ",")
fString = Replace(fString,"&nbsp;", " ")
HTMLEncode2 = fString
end if
end function

将这个HTMLEncode(fString)用进去,将rs("联系地址")改成 HTMLEncode(rs("联系地址")),以及所有可能会出现“,”的字段改成HTMLEncode(rs("xxx")),就可以避免数据错位了。

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值