日期:2014-05-16  浏览次数:21034 次

好久没来了,100高分求教个问题?数据导出excel问题

<!--#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