当前位置 : 主页 > 编程语言 > java >

ASP access导出到Excel

来源:互联网 收集:自由互联 发布时间:2022-07-22
!--#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") '--假设你想让生成


<!--#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
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," ", " ")
HTMLEncode2 = fString
end if
end function


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





上一篇:代理设计模式8--代理模式探索
下一篇:没有了
网友评论