<!--#include file="inc/sys_conn.asp"-->
<%
Set fs = server.CreateObject("scripting.filesystemobject")
a=year(now())&"-"&month(now())&"-"&day(now())
filename = Server.MapPath("/pqyg/date/pqyg_"&a&".xls")
if fs.FileExists(filename) then
fs.DeleteFile(filename)
end if
set myfile = fs.CreateTextFile(filename,true)
strSql = "select * from person where p_state<>'离职'"
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=""/pqyg/date/pqyg_"&a&".xls"" target=""_blank"">下载</a>!"
rstData.Close
set rstData = nothing
Conn.Close
Set Conn = nothing
%>
现在有个问题,里面有一个身份证字段,导出后默认成了数字,显示成了科学计数法,搜了下加上单引号后是可以正常现在,但是其他字段也会出现单引号,求解如何绝佳这个问题,另外导出的表头是字段,但是我设置的是因为,想用中问该如何解决?
------解决方案--------------------
strLine?=?strLine?&""""&?x.value?&?""""&?chr(9)??
改成这样试试
------解决方案--------------------
excel处理数字的问题,一串数字会被显示为科学计数法
你可以区别判断下是身份证的时候再用''括起数据
标头的话除非数据库字段名称为中文的,要不就需要些一个辅助函数从英文还原为中文的
Set fs = server.CreateObject("scripting.filesystemobject")
a=year(now())&"-"&month(now())&"-"&day(now())
filename = Server.MapPath("/pqyg/date/pqyg_"&a&".xls")
if fs.FileExists(filename) then
fs.DeleteFile(filename)
end if
set myfile = fs.CreateTextFile(filename,true)
function cnname(v)'''''''''
select case v
case "name" cnname="姓名"
case "idcard" cnname="身份证"
'.....其他case语句
end select
end function
strSql = "select * from person where p_state<>'离职'"