asp导出excel错行的问题,用fso方式
其它都挺好,不过有时会导出错行的数据,比如,
数据集本来应该是这样的:
编号 | 内容 | 提交人
122 ded 甲
123 gg 乙
124 bb 丙
生成的excel如下:
编号 | 内容 | 提交人
122 ded 甲
123
gg 乙
124 bb 丙
我不知道为什么,代码如下,希望高手指点一二.
代码:
<!-- #include file="db.asp" -->
<%
sqlwhere=request("sqlwhere")
sqlsort = request("sqlsort")
sqlwhere=replace(sqlwhere,"||","'")
sqlwhere=replace(sqlwhere,"//","%")
sql = sql & "select '#'||bh||'#' 编号, "
sql = sql & " nr 内容, "
sql = sql & " tjr 提交人"
sql = sql & " from table1 "
sql = sql & " where 1=1 "
sql = sql & sqlwhere & sqlsort
ftime=year(now())&month(now())&day(now())&hour(now())&minute(now())&second(now())
deltime=dateadd("n",-10,now())
fname=".\excel\"&ftime&".xls"
filename = Server.MapPath(fname)
filefolder=Server.MapPath(".\excel")
'创建一个FileSystemObject对象的事例
Set fs = server.CreateObject("scripting.filesystemobject")
'创建一个Folder对象
Set fsFolder=fs.GetFolder(filefolder)
'循环显示其中子目录
For Each thing in fsFolder.Files
"<br>"&delfile&"<br>"&thing.name&"<br>"&thing.DateLastModified
if thing.DateLastModified < deltime then
fs.DeleteFile(thing)
end if
Next
'--如果原来的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中的数据查出来
rs.Open sql,cn,1,3
if rs.EOF and rs.BOF then
else
dim strLine,responsestr
strLine=""
For each x in rs.fields
strLine = strLine & x.name & chr(9)
Next
'--将表的列名先写入EXCEL
myfile.writeline strLine
Do while Not rs.EOF
strLine=""
for each x in rs.Fields
strLine = strLine & x.value & chr(9)
next
'--将表的数据写入EXCEL
myfile.writeline strLine
rs.MoveNext
loop
rs.Close
set rs = nothing
cn.close
set cn = nothing
End If
response.write "<h3 align=center>导出为excel成功 , 请 <a href="&fname&"
target='_blank'>下载</a> 。</h3>"
%>